前のページ|次のページ

GETOPTION関数

SASシステムまたはグラフィックオプションの値を指定します。

カテゴリ: 特殊関数

構文

必須引数

option-name

システムオプションの名前を指定する文字定数、変数または式です。

ヒント 名前の後に等号記号を付けないでください。たとえば、PAGESIZE=はPAGESIZEと記述します。
EMAILPWやMETAPASSなど、パスワードであるSASオプションは、実際のパスワードではなく値xxxxxxxxを返します。

return-value-option

DEFAULTVALUE

デフォルトオプション値を返します。

制限事項 DEFAULTVALUEは、SASシステムオプションでのみ有効です。DEFAULTVALUEオプションが指定され、option-nameがグラフィックオプションの場合、SASから警告メッセージが発行されます。

HOWSCOPE

オプションのスコープを示す文字列を返します。

制限事項 HOWSCOPEは、SASシステムオプションでのみ有効です。HOWSCOPEオプションが指定され、option-nameがグラフィックオプションの場合、SASから警告メッセージが発行されます。

HOWSET

オプション値の設定を示す文字列を返します。

制限事項 HOWSETは、SASシステムオプションでのみ有効です。HOWSETオプションが指定され、option-nameがグラフィックオプションの場合、SASから警告メッセージが発行されます。

STARTUPVALUE

コマンドラインまたは構成ファイルのいずれかでSASの起動に使用されたシステムオプション値を返します。

制限事項 STARTUPVALUEは、SASシステムオプションでのみ有効です。STARTUPVALUEオプションが指定され、option-nameがグラフィックオプションの場合、SASから警告メッセージが発行されます。

return-value-formatting-options

CM

グラフィック単位をセンチメートルで報告します。

制限事項 CMは、グラフィックオプションとSASシステムオプションのBOTTOMMARGIN、TOPMARGIN、RIGHTMARGIN、LEFTMARGINでのみ有効です。 CMオプションが指定され、option-nameがグラフィックオプションまたは余白値を示すオプションのどちらでもない場合、SASによりログにメモが書き込まれます。

EXPAND

環境変数が含まれるオプションについて、オプション値と環境変数の値を返します。

制限事項 変数展開は、WindowsおよびUNIX動作環境でのみ有効です。
EXPANDは、文字のシステムオプション値でのみ有効です。 CENTERや NOCENTERなど、option-nameのオプションタイプがブール式か、オプションの値が数値の場合、EXPANDは無視されます。
ブール式オプションや数値のオプションにEXPANDが指定されると、SASからメモが発行されます。EXPANDオプションが指定され、オプションがグラフィックオプションの場合、SASから警告が発行されます。
ヒント デフォルトでは、一部のオプション値は展開された変数値と一緒に表示されます。その他のオプション値では、PROC OPTIONSステートメントにEXPANDオプションが必要です。オプション値がデフォルトで変数を展開するのか、EXPANDオプションが必要なのかを確認するには、PROC OPTIONSステートメントでDEFINEオプションを使用します。PROC OPTIONS DEFINEからの出力に次の情報が表示された場合、変数値を展開するにはEXPANDオプションを使用する必要があります。
Expansion: Environment variables, within the option value, 
are not expanded

KEYEXPAND

環境変数が含まれるオプションについて、option-name=valueの出力形式で値を返します。

制限事項 KEYEXPANDは、文字のシステムオプション値でのみ有効です。 KEYEXPANDオプションが指定され、option-nameがグラフィックオプションの場合、SASからエラーメッセージが発行されます。CENTERや NOCENTERなど、option-nameのオプションタイプがブール式か、オプションの値が数値の場合、KEYEXPANDは無視されます。

KEYWORD

SAS OPTIONSまたはGOPTIONSグローバルステートメントで直接使用するのに適したoption-name=value出力形式でオプション値を返します。

制限事項 KEYWORDは、HEXVALUE、EXPAND、KEYEXPAND、LOGNUMBERFORMATオプションとともに使用すると、有効ではありません。GETOPTION関数に競合するオプションが含まれていると、SASによりログにメモが書き込まれます。
KEYWORDは、文字または数値のシステムオプション値でのみ有効です。KEYWORDは、CENTERやNOCENTERなど、オプションタイプがブール式のシステムオプションでは無視されます。KEYWORDオプションが指定され、option-nameがグラフィックオプションの場合、SASからエラーメッセージが発行されます。
null値を含むシステムオプションの場合、GETOPTION関数は値' ' (単一引用符で囲まれた1個の空白)を返します。たとえば、EMAILID=' 'のように返されます。

HEXVALUE

オプション値を16進値で返します。

制限事項 HEXVALUEは、文字または数値のシステムオプション値でのみ有効です。HEXVALUEが、CENTERやNOCENTERなど、オプションタイプがブール式のシステムオプションに指定されたか、option-nameがグラフィックオプションの場合、SASによりエラーメッセージが発行されます。

IN

グラフィック単位をインチで報告します。

制限事項 INは、グラフィックオプションとSASシステムオプションのBOTTOMMARGIN、TOPMARGIN、RIGHTMARGIN、LEFTMARGINでのみ有効です。 INオプションが指定され、option-nameがグラフィックオプションまたは余白値を示すオプションのどちらでもない場合、SASによりログにメモが書き込まれます。

LOGNUMBERFORMAT

ロケール固有の句読点を使用してSASシステムオプション値に出力形式を適用します。

制限事項 OPTIONSステートメントを使用したオプション値の設定に戻り値を使用する場合、LOGNUMBERFORMATを使用しないでください。OPTIONSステートメントでは、カンマを含む数値を受け入れません。

例1: GETOPTIONを使用したYEARCUTOFFオプションの保存と復元

This example saves the value of the YEARCUTOFF option, processes SAS statements based on the value of the YEARCUTOFF option, and then resets the value to 1926 if it is not already 1926.
/* Save the value of the YEARCUTOFF system option */
%let cutoff=%sysfunc(getoption(yearcutoff,keyword));

data ages;
if getoption('yearcutoff') = '1926' then
do;
...more SAS statements...
end;
else do;
...more SAS statements...
/* Reset YEARCUTOFF */
options &cutoff;
end;
run;

例2: GETOPTIONを使用した別のレポートオプションの取得

この例では、GETOPTION関数の使用方法を説明するマクロを定義し、さまざまなレポートオプションを使用して、システムおよびグラフィックオプションの値を取得します。
%macro showopts;
%put MAPS= %sysfunc(
getoption(MAPS)); 
%put MAPSEXPANDED= %sysfunc(
getoption(MAPS, EXPAND));
%put PAGESIZE= %sysfunc(
getoption(PAGESIZE));
%put PAGESIZESETBY= %sysfunc(
getoption(PAGESIZE, HOWSET));
%put PAGESIZESCOPE= %sysfunc(
getoption(PAGESIZE, HOWSCOPE));
%put PS= %sysfunc(
getoption(PS));
%put LS= %sysfunc(
getoption(LS));
%put PS(keyword form)= %sysfunc(
getoption(PS,keyword));
%put LS(keyword form)= %sysfunc(
getoption(LS,keyword));
%put FORMCHAR= %sysfunc(
getoption(FORMCHAR));
%put HSIZE= %sysfunc(
getoption(HSIZE));
%put VSIZE= %sysfunc(
getoption(VSIZE));
%put HSIZE(in/keyword form)= %sysfunc(
getoption(HSIZE,in,keyword));
%put HSIZE(cm/keyword form)= %sysfunc(
getoption(HSIZE,cm,keyword));
%put VSIZE(in/keyword form)= %sysfunc(
getoption(VSIZE,in,keyword));
%put HSIZE(cm/keyword form)= %sysfunc(
getoption(VSIZE,cm,keyword));
%mend;
goptions VSIZE=8.5 in HSIZE=11 in;
options PAGESIZE=67;
%showopts
SASログは次のようになります。
NOTE: PROCEDURE PRINTTO used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds

6 %macro showopts;
7 %put MAPS= %sysfunc(
8 getoption(MAPS));
9 %put MAPSEXPANDED= %sysfunc(
10 getoption(MAPS, EXPAND));
11 %put PAGESIZE= %sysfunc(
12 getoption(PAGESIZE));
13 %put PAGESIZESETBY= %sysfunc(
14 getoption(PAGESIZE, HOWSET));
15 %put PAGESIZESCOPE= %sysfunc(
16 getoption(PAGESIZE, HOWSCOPE));
17 %put PS= %sysfunc(
18 getoption(PS));
19 %put LS= %sysfunc(
20 getoption(LS));
21 %put PS(keyword form)= %sysfunc(
22 getoption(PS,keyword));
23 %put LS(keyword form)= %sysfunc(
24 getoption(LS,keyword));
25 %put FORMCHAR= %sysfunc(
26 getoption(FORMCHAR));
27 %put HSIZE= %sysfunc(
28 getoption(HSIZE));
29 %put VSIZE= %sysfunc(
30 getoption(VSIZE));
31 %put HSIZE(in/keyword form)= %sysfunc(
32 getoption(HSIZE,in,keyword));
33 %put HSIZE(cm/keyword form)= %sysfunc(
34 getoption(HSIZE,cm,keyword));
35 %put VSIZE(in/keyword form)= %sysfunc(
36 getoption(VSIZE,in,keyword));
37 %put HSIZE(cm/keyword form)= %sysfunc(
38 getoption(VSIZE,cm,keyword));
39 %mend;
40 goptions VSIZE=8.5 in HSIZE=11 in;
41 options PAGESIZE=67;
42 %showopts
MAPS= ("!sasroot\maps-path\en\maps")
MAPSEXPANDED= ("C:\maps-path\en\maps")
PAGESIZE= 67
PAGESIZESETBY= Options Statement
PAGESIZESCOPE= Line Mode Process
PS= 67
LS= 78
PS(keyword form)= PS=67
LS(keyword form)= LS=78
FORMCHAR= ‚ƒ„…†‡ˆ‰Š‹Œ+=|-/\<>*
HSIZE= 11.0000 in
VSIZE= 8.5000 in
HSIZE(in/keyword form)= HSIZE=11.0000 in
HSIZE(cm/keyword form)= HSIZE=27.9400 cm
VSIZE(in/keyword form)= VSIZE=8.5000 in
HSIZE(cm/keyword form)= VSIZE=21.5900 cm
43 proc printto; run;

例3: デフォルト値と開始値を返す

この例では、PAPERSIZEシステムオプションの値を特定の値、PAPERSIZEオプションのデフォルト値、およびSAS起動時にPAPERSIZEオプションに割り当てられた値に変更します。
/* Check the value of papersize before we change it. */
/* The initial value is A4 as this value was used when */ 
/* SAS started. */

%put %sysfunc(getoption(papersize,keyword));

/* Change the PAPERSIZE value and check the change. */

options papersize="600x800 Pixels";

%put %sysfunc(getoption(papersize,keyword));

/* Change PAPERSIZE back to the default value and check it. */
/* RESULT: LETTER */

%let defsize = %sysfunc(getoption(papersize,keyword,defaultvalue)) ;
options &defsize; run;
%put %sysfunc(getoption(papersize,keyword));

/* Change the value to the startup value and check it. */
/* RESULT: A4 */

%let defsize = %sysfunc(getoption(papersize,keyword,startupvalue)) ;
options &defsize; run;
%put %sysfunc(getoption(papersize,keyword));
SASログには次の行が表示されます。
22 /* Check the value of papersize before we change it. */
23 /* The initial value is A4 as this value was used when */
24 /* SAS started. */
25
26 %put %sysfunc(getoption(papersize,keyword));
PAPERSIZE=A4
27
28 /* Change the PAPERSIZE value and check the change. */
29
30 options papersize="600x800 Pixels";
31
32 %put %sysfunc(getoption(papersize,keyword));
PAPERSIZE=600X800 PIXELS
33
34 /* Change PAPERSIZE back to the default value and check it. */
35 /* RESULT: LETTER */
36
37 %let defsize = %sysfunc(getoption(papersize,keyword,defaultvalue)) ;
38 options &defsize; run;
39 %put %sysfunc(getoption(papersize,keyword));
PAPERSIZE=LETTER
40
41 /* Change the value to the startup value and check it. */
42 /* RESULT: A4 */
43
44 %let defsize = %sysfunc(getoption(papersize,keyword,startupvalue)) ;
45 options &defsize; run;
46 %put %sysfunc(getoption(papersize,keyword));
PAPERSIZE=A4
注: PAGESIZE=およびLINESIZE=オプションのデフォルト設定は、SASの実行に使用するモードに依存します。
前のページ|次のページ|ページの先頭へ