BookmarkSubscribeRSS Feed

データから、数値または文字だけを抽出する方法

Started ‎03-01-2018 by
Modified ‎04-19-2018 by
Views 3,220

質問

文字と数字が混在しているデータがあります。
この中から、文字や数字を取り出す方法はありますか。

回答

これまでは、SCAN関数やSUBSTER関数などの利用で、特定の文字を抽出することなどが可能でしたが、SAS9からは、COMPRESS関数に追加された機能を利用することで、簡易に文字・数字のみを取り出すことが可能となりました。

 

次の例では、COMPRESS関数の3番目の引数に値を保持することを意味する「K」と、数値を表す「D」、および文字(アンダーバーと英字)を表す「F」を組み合わせて指定し、変数内の数値と文字を取り出しています。

 

COMPRESS関数の構文
  COMPRESS(<source><, chars><, modifiers>)

 

 

説明
source 取り除きたい文字を含むSAS文字式
chars SAS文字式から取り除きたい、1つ以上の文字
modifiers COMPRESSの動作に対する設定

 

使用例

 

                                   /* テストデータ作成 */

DATA sample;
  INPUT data1 $CHAR15.;
DATALINES;
2006 01 08 aaaaa
bbbb 2006-01-09
2006/01/10 cc
;
RUN;

DATA ext; SET sample; /* KD 数値を残す */ rc1 = COMPRESS(data1,,'KD'); /* KF 文字を残す */ rc2 = COMPRESS(data1,,'KF'); RUN; PROC PRINT DATA=ext (KEEP=rc1 rc2); RUN;

 

 

 

上記の使用例を実行すると、結果は以下のようになります。

 

    OBS      rc1       rc2
    1     20060108    aaaa
    2     20060109    bbbb
    3     20060110    cc

 

 
COMPRESS関数の詳細は、以下のURLご参照ください。


SAS 9.4関数とCALLルーチン:リファレンス(第4版) COMPRESS関数
http://support.sas.com/documentation/cdl_alternate/ja/lefunctionsref/67960/HTML/default/n0fcshr0ir3h...

 

なお、COMPRESS関数の拡張は全角文字に対応していません。また、KCOMPRESS関数には機能の追加はありません。

 

 

Version history
Last update:
‎04-19-2018 08:59 PM
Updated by:

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む