SAS-基本構文

他のプログラミング言語と同様に、SAS言語には、SASプログラムを作成するための独自の構文規則があります。

SASプログラムの3つのコンポーネント(ステートメント、変数、データセット)は、構文に関する以下のルールに従います。

SASステートメント

  • ステートメントはどこからでも開始でき、どこでも終了できます。最後の行の終わりにあるセミコロンは、ステートメントの終わりを示します。

  • 多くのSASステートメントを同じ行に配置でき、各ステートメントはセミコロンで終わります。

  • スペースを使用して、SASプログラムステートメントのコンポーネントを区切ることができます。

  • SASキーワードでは、大文字と小文字は区別されません。

  • すべてのSASプログラムは、RUNステートメントで終了する必要があります。

SAS変数名

SASの変数は、SASデータセットの列を表します。変数名は以下のルールに従います。

  • 最大32文字の長さにすることができます。

  • 空白を含めることはできません。

  • AからZまでの文字(大文字と小文字は区別されません)またはアンダースコア(_)で始まる必要があります。

  • 数字を含めることはできますが、最初の文字として含めることはできません。

  • 変数名では大文字と小文字は区別されません。

# Valid Variable Names
REVENUE_YEAR
MaxVal
_Length

# Invalid variable Names
Miles Per Liter	#contains Space.
RainfFall%      # contains apecial character other than underscore.
90_high		# Starts with a number.

SASデータセット

DATAステートメントは、新しいSASデータセットの作成を示します。DATAセット作成のルールは以下のとおりです。

  • DATAステートメントの後の1つの単語は、一時データ・セット名を示します。これは、セッションの終了時にデータセットが消去されることを意味します。

  • データセット名の前にライブラリ名を付けることができるため、永続的なデータセットになります。これは、セッションが終了した後もデータセットが保持されることを意味します。

  • SASデータセット名が省略されている場合、SASは、SASによって生成された名前(DATA1、DATA2など)で一時データセットを作成します。

# Temporary data sets.
DATA TempData;
DATA abc;
DATA newdat;

# Permanent data sets.
DATA LIBRARY1.DATA1
DATA MYLIB.newdat;

SASファイル拡張子

SASプログラム、データファイル、およびプログラムの結果は、さまざまな拡張子でWindowsに保存されます。

  • *.sas −SASエディタまたは任意のテキストエディタを使用して編集できるSASコードファイルを表します。

  • *.log −送信されたSASプログラムのエラー、警告、データセットの詳細などの情報を含むSASログファイルを表します。

  • *.mht / *.html -SAS結果ファイルを表します。

  • *.sas7bdat -変数名、ラベル、計算結果を含むSASデータセットを含むSASデータファイルを表します。

SASのコメント

SASコードのコメントは、2つの方法で指定されます。以下は、これら2つの形式です。

*メッセージ; コメントを入力

の形でのコメント *message;セミコロンや一致しない引用符を内部に含めることはできません。また、そのようなコメント内のマクロステートメントへの参照があってはなりません。複数行にまたがることができ、任意の長さにすることができます。以下は、単一行コメントの例です。

* This is comment ;

以下は複数行コメントの例です-

* This is first line of the comment
* This is second line of the comment;

/ *メッセージ* /タイプコメント

の形でのコメント /*message*/より頻繁に使用され、ネストすることはできません。ただし、複数の行にまたがることができ、任意の長さにすることができます。以下は1行コメントの例です-

/* This is comment */

以下は複数行コメントの例です-

/* This is first line of the comment
* This is second line of the comment */