【SAS】データ型変換後の変数をマクロ変数として定義する方法(symputx関数)

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • SAS変数のデータ型・フォーマットを変換する方法が知りたい!
  • データ型を変換した変数をマクロ変数として定義したい!
目次

【参考】SAS変数のデータ型・フォーマット変換方法

SAS変数のデータ型・フォーマットの変換にはINPUTおよびPUT関数を用います。

INPUTおよびPUT関数の使い方はこちらの記事で詳しく言及しています。

あわせて読みたい
マクロの定義(%MACRO)とSASプログラミング実行方法 SAS環境にマクロ(MACRO)を定義し、実行するためのプログラミング手法について詳しく解説します。

【参考】SAS変数をマクロ変数として定義する方法

SAS変数をマクロ変数として定義する場合、symputx関数を利用します。

symputx('マクロ変数名', SAS変数名)

マクロ変数について詳しく知りたい方はこちらの記事をご覧ください。

あわせて読みたい
マクロの定義(%MACRO)とSASプログラミング実行方法 SAS環境にマクロ(MACRO)を定義し、実行するためのプログラミング手法について詳しく解説します。

【SAS実践】データ型変換後の変数をマクロ変数として展開する方法

INPUT関数やPUT関数で変換した変数をマクロ変数として定義し、変数を再利用したい場合があるかもしれません。本記事ではそのような方法について解説します。

【例】文字列型→数値型変換した変数をマクロ変数として定義

INPUT関数を用いて文字列→数値型に変換した変数をマクロ変数として取り出す例を以下に示します。

DATA _null_;  
	/* 文字列型の変数 */
    date_str = "22Jan2024:00:00:00";
    
    /* 文字列->数値型変換 */
    date_int = INPUT(date_str, datetime.);
    format date_int datetime.;
    
    /* マクロ変数として定義 */
    CALL symputx('Macro_date_int', date_int);  
RUN;  

/* マクロ変数確認 */
%put &Macro_date_int;

【例】日付型→文字列型変換した変数をマクロ変数として定義

PUT関数を用いて日付列→文字列型に変換した変数をマクロ変数として取り出す例を以下に示します。

DATA _null_; 
 
	/* 日付型の変数 */
    date_date = "22Jan2024:00:00:00"d;
    
    /* 日付型の変数 */
    date_str = PUT(date_date, yymmdd10.);
    
    
    /* マクロ変数として定義 */
    CALL symputx('Macro_date_str', date_str);  
RUN;  

/* マクロ変数ログ出力 */
%put &Macro_date_str;

【参考】SASプログラミング記事一覧

当サイトではSASを用いたプログラミング解説記事を多数掲載しております。

SASはデータ処理・分析をはじめ、高度な統計解析や機械学習・AIによる予測モデリングなど様々な用途に利用できます。また金融や医療を代表とする様々な業界の分析業務で広く活用されています。

最後に

この記事が気に入ったら
フォローしてね!

目次