【SAS言語】マクロ変数の作成・利用方法

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

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

こんな方におすすめ!
  • SASプログラミングに興味がある!
  • SASのマクロ変数について詳しく知りたい!
目次

【SAS】マクロ変数とは

SASのマクロ変数とは、SASのマクロ言語において使用される特殊変数です。プログラムの柔軟性を高め、コードの再利用性を向上させるために使用されます。

【SAS実践】マクロ変数の基本構文

初めに、SASのマクロ変数の基本構文について解説します。

マクロ変数の定義方法

マクロ変数の定義方法について以下に整理します。

  • マクロ変数は%let ステートメントを使用して定義する。
  • マクロ変数利用の際は&helloのように先頭に&をつける。
  • マクロ変数の出力を確認したい場合、%putステートメントを用いるとログ上で確認できる。

コード

/* マクロ変数を定義 */
%let hello = "Hello World!";

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

出力イメージ

Hello World!

マクロ変数の一覧表示

SASプログラム上で以下を入力すると、利用可能なマクロ変数を一覧表示できます。

コード

%put _all_;

出力イメージ

上記を実行すると、利用可能なマクロ変数がすべて確認できます。

 GLOBAL _CLIENTAPP 'SAS Studio'
 GLOBAL _CLIENTAPPABREV Studio
 GLOBAL _CLIENTAPPVERSION 3.81
 GLOBAL _EXECENV SASStudio
 GLOBAL _MACRO_FOUND 0
 AUTOMATIC SYSCC 0
 AUTOMATIC SYSCHARWIDTH 1
 AUTOMATIC SYSCMD 
 AUTOMATIC SYSDATASTEPPHASE 
 AUTOMATIC SYSDATE 26JAN24
 AUTOMATIC SYSDATE9 26JAN2024
 AUTOMATIC SYSDAY Friday
 AUTOMATIC SYSDEVIC 
 AUTOMATIC SYSDMG 0
 ・・・

【SAS実践】利用頻度の高いマクロ変数

続いて、利用頻度の高いマクロ変数をいくつかご紹介します。

本日の日付・曜日・時刻|sysdate・sysday・systime

マクロ変数を用いて本日日付・曜日・時刻を取得したい場合、次のように記述します。

コード

%PUT "本日日付: &sysdate";
%PUT "本日曜日: &sysday";
%PUT "本日時刻: &systime";

出力イメージ

 "本日日付: 26JAN24"
 "本日曜日: Friday"
 "本日時刻: 22:30"

文字列のインデックス取得|%index

指定した文字列のインデックスを返すマクロ変数として以下が活用できます。

コード

/* マクロ変数定義 */
%let value = hello my name is Mike;

/* %indexのマクロ変数定義 */
%let position = %index(&value, is);

/* ログ出力 */
%put position: &position;

出力イメージ

position: 15

指定位置の文字列取得|%scan

指定した位置の文字列を取得する場合、以下のマクロ変数が有効です。

コード

%let text = ABCD.EFGH/IJKL/MNKOP;
%let WORD = %SCAN(&text,3);                /* 3番目のワードを返す(1番目 ABCD 2番目 EFGH 3番目 IJKL) */
%let PART = %SCAN(&text, 1, D);            /* 1番目のワードのDより前を返す(1番目 ABCD) */
%put Word IS &WORD AND PART IS ∂

出力イメージ

Word IS IJKL AND PART IS ABC

【参考】マクロの定義|%MACRO

SASプログラミングをもとにマクロの定義も可能です。個別にカスタマイズされたマクロを作成できるようになると、様々な用途で利便性を感じれるでしょう。詳しくはこちらの記事でまとめていますため、併せてご覧ください。

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

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

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

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

最後に

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

目次