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は、文字を置き換えます。
関連の記事