本書について
前のページ|次のページ

本書について

SAS言語の構文規則

SAS言語の構文規則の概要

SASでは、SAS言語要素の構文ドキュメントに共通の規則を使用しています。これらの規則により、SAS構文の構成要素を簡単に識別できます。規則は、次の項目に分類されます。
  • 構文の構成要素
  • スタイル規則
  • 特殊文字
  • SASライブラリと外部ファイルの参照

構文のコンポーネント

言語要素の多くでは、その構文の構成要素はキーワードと引数から構成されます。 キーワードのみ必要な言語要素もあります。また、キーワードに等号(=)が続く言語要素もあります。複数の引数を含む構文で区切り記号を使用する場合と使用しない場合を説明するために、引数の構文の形式が複数示されています。
キーワード
プログラムの作成ときに使用するSAS言語要素名です。 キーワードはリテラルであり、通常、構文の先頭の単語です。 CALLルーチンでは、最初の2つの単語がキーワードです。
これらの例のSAS構文では、キーワードには太字が使用されています。
CHAR (string, position)
CALL RANBIN (seed, n, p, x);
ALTER (alter-password)
BEST w.
REMOVE <data-set-name>
この例では、CALLルーチンの最初の2つの単語がキーワードです。
CALL RANBIN(seed, n, p, x)
引数なしで1つのキーワードから構成されるSASステートメント構文もあります。
DO;
... SAS code ...
END;
2つのキーワード値のいずれか1つの指定が必要なシステムオプションもあります。
DUPLEX | NODUPLEX
プロシジャステートメントによっては、ステートメント構文中に複数のキーワードが含まれます。
CREATE <UNIQUE> INDEX index-name ON table-name (column-1 <, column-2, ...>)
引数
数値定数、文字定数、変数、式のいずれかです。引数は、キーワードに続くか、キーワードの後ろの等号に続きます。SASでは、引数を使用して、言語要素を処理します。引数が必須の場合もオプションの場合もあります。構文では、オプションの引数は山かっこ( < > )で囲まれます。
この例では、stringpositionがキーワードCHARに続きます。これらの引数は、CHAR関数の必須引数です。
CHAR (string, position)
引数ごとに値が指定されます。この例のSASコードでは、引数stringの値は'summer'、引数positionの値は4です。
x=char('summer', 4);
この例では、stringおよびsubstringは必須引数ですが、modifiersstartposはオプションです。
FIND(string, substring <,modifiers> <,startpos>
argument(s)
引数は必ず1つ必要であり、複数の引数が許可されます。引数の間はスペースで区切ります。カンマ( , )などの区切り記号は、引数間に必要ありません。
たとえば、MISSINGステートメントは、この形式で複数の引数を含みます。
MISSING character(s);
<LITERAL_ARGUMENT> argument-1 <<LITERAL_ARGUMENT> argument-2 ... >
引数は必ず1つ必要であり、リテラル引数がこの引数に関連付けられます。リテラルと引数のペアは複数指定できます。リテラルと引数の間に区切り記号は必要ありません。省略記号(...)は、追加のリテラルと引数が許可されることを示します。
たとえば、BYステートメントはこの引数を含みます。
BY <DESCENDING> variable-1 <<DESCENDING> variable-2 ...>;
argument-1 <option(s)> <argument-2 <option(s)> ...>
引数は必ず1つ必要であり、1つ以上のオプションがこの引数に関連付けられます。複数の引数と関連するオプションを指定できます。引数とオプションの間に区切り記号は必要ありません。省略記号(...)は、追加の引数と関連するオプションが許可されることを示します。
たとえば、FORMATプロシジャのPICTUREステートメントは、この形式で複数の引数を含みます。
PICTURE name <(format-option(s))>
<value-range-set-1 <(picture-1-option(s))>
<value-range-set-2 <(picture-2-option(s))> ...>>
;
argument-1=value-1 <argument-2=value-2 ...>
引数には値を割り当てる必要があり、複数の引数を指定できます。省略記号(...)は、追加の引数が許可されることを示します。引数間に区切り記号は必要ありません。
たとえば、LABELステートメントは、この形式で複数の引数を含みます。
LABEL variable-1=label-1 <variable-2=label-2 ...>;
argument-1 <, argument-2, ...>
引数は必ず1つ必要であり、カンマまたは別の区切り記号で区切って複数の引数を指定できます。省略記号(...)は、カンマで区切られた引数が続くことを示します。SASドキュメントでは両方の形式が使用されます。
次に、この形式で指定された複数の引数の例を示します。
AUTHPROVIDERDOMAIN (provider-1:domain-1 <, provider-2:domain-2, ...>
INTO :macro-variable-specification-1 <, :macro-variable-specification-2, ...>
注: 通常、SASドキュメントのサンプルコードは、小文字の固定幅フォントを使用して表記されます。 コードの作成には、大文字も、小文字も、大文字と小文字の両方も使用できます。

書体に関する規則

SAS構文の説明に使用されるスタイル規則には、大文字太字、大文字、斜体の規則も含まれます。
大文字太字
関数名やステートメント名などのSASキーワードを示します。この例では、キーワードERRORの表記には大文字太字が使用されています。
ERROR <message>;
大文字
リテラルの引数を示します。
このCMPMODEL=システムオプションの例では、BOTH、CATALOG、XMLがリテラルです。
CMPMODEL=BOTH | CATALOG | XML |
斜体
ユーザー指定の引数または値を示します。斜体表記の項目は、ユーザー指定値であり、次のいずれかを表します。
  • 非リテラル引数。このLINKステートメントの例では、引数labelはユーザー指定値のため、斜体で表示されます。
    LINK label;
  • 引数に割り当てられる非リテラル値。
    このFORMATステートメントの例では、引数DEFAULTに変数のdefault-formatが割り当てられます。
    FORMAT variable(s) <format > <DEFAULT = default-format>;

特殊文字

SAS言語要素の構文には、次の特殊文字も使用されます。
=
等号は、一部の言語要素(システムオプションなど)のリテラル値を示します。
このMAPSシステムオプションの例では、等号によりMAPSの値が設定されます。
MAPS = location-of-maps
< >
山かっこはオプションの引数を示します。必須引数は山かっこで囲みません。
このCAT関数の例では、少なくとも項目が1つ必要です。
CAT (item-1 <, item-2, ...>)
|
縦棒は、値グループから1つの値を選択できることを示します。縦棒で区切られている値は、相互排他です。
このCMPMODEL=システムオプションの例では、引数を1つのみ選択できます。
CMPMODEL=BOTH | CATALOG | XML
...
省略記号は、引数の繰り返しが可能なことを示します。引数と省略記号が山かっこで囲まれている場合、その引数はオプションです。繰り返される引数には、その引数の前や後ろに、区切り記号を入れる必要があります。
このCAT関数の例では、複数のitem引数が許可され、カンマで区切る必要があります。
CAT (item-1 <, item-2, ...>)
'value'または"value"
一重引用符や二重引用符付きの引数は、その値にも一重引用符または二重引用符を付ける必要があることを示します。
このFOOTNOTEステートメントの例では、引数textに引用符が付けられています。
FOOTNOTE <n> <ods-format-options 'text' | "text">;
;
セミコロンは、ステートメントまたはCALLルーチンの終わりを示します。
この例では、各ステートメントがセミコロンで終了しています。
data namegame;
length color name $8;
color = 'black';
name = 'jack';
game = trim(color) || name;
run;

SASライブラリと外部ファイルの参照

多くのSASステートメントなどの言語要素では、SASライブラリと外部ファイルを参照します。 論理名(ライブラリ参照名またはファイル参照名)から参照を作成するのか、引用符付きの物理ファイル名を使用するかを選択できます。論理名を使用する場合、通常、参照の作成にSASステートメント(LIBNAMEまたはFILENAME)を使用するのか、動作環境のコントロール言語を使用するのかを選択します。複数の方法を使用して、SASライブラリと外部ファイルを参照できます。動作環境によっては使用できない方法があります。
SASドキュメントでは、外部ファイルを使用する例には斜体のフレーズfile-specificationを使用します。 また、SASライブラリを使用する例には斜体フレーズSAS-libraryを引用符で囲んで使用します。
infile file-specification obs = 100;
libname libref 'SAS-library';
前のページ|次のページ|ページの先頭へ