SAS 文字列を操作するサンプル

SASの文字列を操作するサンプルです。

目次

サンプル 文字列を結合する(cat)
  文字列を結合する(連結演算子(||))
  指定した位置の文字列を取得する(substr)
  文字列の位置を取得する(index)
  文字列の位置を取得する(find)
  文字列の長さを取得する(length)
  前後の半角の空白を削除する(strip)
  文字列を削除する(compress)
  文字列を置き換える(tranwrd)
  文字列を置き換える(translate)

文字列を結合する(cat)

DATA _NULL_;
	a = '赤';
	b = '黄';
	c = '青';

	d = cat(a,b,c);
	put d; /* 赤黄青 */
run;

catは、文字列を結合します。

文字列を結合する(連結演算子(||))

DATA _NULL_;
	a = '赤';
	b = '黄';
	c = '青';

	d = a||b||c;
	put d; /* 赤黄青 */
run;

連結演算子の(||)は、文字列を結合します。

指定した位置の文字列を取得する(substr)

DATA _NULL_;
	str1 = 'abcde';
	
	str2 = substr(str1,1,1);
	put str2; /* a */
	
	str3 = substr(str1,2,1);
	put str3; /* b */
	
	str4 = substr(str1,3,1);
	put str4; /* c */
	
	str5 = substr(str1,1,2);
	put str5; /* ab */
run;

1つめの引数は開始位置で、2つめの引数は取得する文字列の長さです。

文字列の位置を取得する(index)

DATA _NULL_;
	str1 = 'abcde';
	
	str2 = index(str1,'a');
	put str2; /* 1 */
	
	str3 = index(str1,'b');
	put str3; /* 2 */
	
	str4 = index(str1,'c');
	put str4; /* 3 */
	
	str5 = index(str1,'ab');
	put str5; /* 1 */
	
	str6 = index(str1,'x');
	put str6; /* 0 */
run;

indexは、文字列の位置を取得します。
1文字目は1です。
指定する文字列が見つからない場合は0を返します。

文字列の位置を取得する(find)

DATA _NULL_;
	str1 = 'abcabc';
	
	str2 = find(str1,'A');
	put str2; /* 0 */
	
	str3 = find(str1,'A','i');
	put str3; /* 1 */
	
	str4 = find(str1,'c','i',1);
	put str4; /* 3 */
	
	str5 = find(str1,'c','i',4);
	put str5; /* 6 */
	
	str6 = find(str1,'x');
	put str6; /* 0 */
run;

findは、文字列の位置を取得します。
1文字目は1です。
3つめの引数のiがある場合、大文字と小文字を区別しません。
4つめの引数は、検索する開始位置です。
指定する文字列が見つからない場合は0を返します。

文字列の長さを取得する(length)

DATA _NULL_;
	str1 = 'abc';

	str2 = length(str1);
	put str2; /* 3 */
run;

lengthは、文字列の長さを返します。

前後の半角の空白を削除する(strip)

DATA _NULL_;
	str1 = ' abc ';

	str2 = strip(str1);
	put str2; /* abc */
	
	str3 = length(str2);
	put str3; /* 3 */
run;

stripは、前後の半角の空白を削除します。

文字列を削除する(compress)

DATA _NULL_;
	str1 = 'abcde';

	str2 = compress(str1,'abc');
	put str2; /* de */
run;

compressは、2つめの引数の文字列を削除します。

文字列を置き換える(tranwrd)

DATA _NULL_;
	str1 = 'red-blue';

	str2 = tranwrd(str1,'blue','orange');
	put str2; /* red-orange */
run;

tranwrdは、文字列を置き換えます。

文字列を置き換える(translate)

DATA _NULL_;
	str1 = 'abcabc';

	str2 = translate(str1,'Z','c');
	put str2; /* abZabZ */
run;

translateは、文字を置き換えます。

関連の記事

SAS マクロ変数のサンプル

△上に戻る