SAS関数またはユーザー作成の関数を実行します。
種類: | マクロ関数 |
ヒント: | %SYSFUNC関数と%QSYSFUNC関数は最大32文字のSAS関数名をサポートします。 |
実行する関数名を指定します。SAS関数、SAS/TOOLKITソフトウェアを使って作成した関数、または(FCMP Procedure (Base SASプロシジャガイド))を使って作成した関数のいずれかを指定できます。マクロ関数は指定できません。
%let x=%sysfunc(trim(%sysfunc(left(&num))));
functionが使用する1つ以上の引数を指定します。各argumentには、関数の引数を生成するマクロ変数参照やテキスト式を指定できます。argumentが次に示すような特殊文字やニーモニック演算子を含んでいる場合、%QSYSFUNCを使用します。
functionの結果に適用されるオプションの出力形式を指定します。SAS提供の出力形式、FORMATプロシジャにより生成される出力形式、またはSAS/TOOLKITを使って作成された出力形式を指定できます。formatのデフォルト値はありません。formatを指定しない場合、SASマクロ機能は結果に対してformat操作を実行せず、functionのデフォルト値を使用します。
dsid=open("Sasuser.Houses","i");
dsid=open("&mydata","&mode");
%let dsid = %sysfunc(open(Sasuser.Houses,i));
%let dsid=%sysfunc(open(&mydata,&mode));
& % ' " ( ) + − * / < > = ¬ ^ ~ ; , # blank AND OR NOT EQ NE LE LT GE GT IN
すべての変数情報関数
|
ALLCOMB
|
ALLPERM
|
DIF
|
DIM
|
HBOUND
|
IORCMSG
|
INPUT
|
LAG
|
LBOUND
|
LEXCOMB
|
LEXCOMBI
|
LEXPERK
|
LEXPERM
|
MISSING
|
PUT
|
RESOLVE
|
SYMGET
|
title "%sysfunc(date(),worddate.) Absence Report";
title "July 18, 2008 Absence Report"
proc format; value category Low-<0 = 'Less Than Zero' 0 = 'Equal To Zero' 0<-high = 'Greater Than Zero' other = 'Missing'; run; %macro try(parm); %put &parm is %sysfunc(putn(&parm,category.)); %mend; %try(1.02) %try(.) %try(-.38)
1.02 is Greater Than Zero . is Missing -.38 is Less Than Zero
%let string1 = V01N01-V01N10; %let string1 = %sysfunc(translate(&string1,P, N)); %put With N translated to P, V01N01-V01N10 is &string1;
With N translated to P, V01N01-V01N10 is V01P01-V01P10
%macro checkds(dsn); %if %sysfunc(exist(&dsn)) %then %do; proc print data=&dsn; run; %end; %else %put The data set &dsn does not exist.; %mend checkds; %checkds(Sasuser.Houses)
PROC PRINT DATA=SASUSER.HOUSES; RUN;
%macro obsnvars(ds); %global dset nvars nobs; %let dset=&ds; %let dsid = %sysfunc(open(&dset)); %if &dsid %then %do; %let nobs =%sysfunc(attrn(&dsid,NOBS)); %let nvars=%sysfunc(attrn(&dsid,NVARS)); %let rc = %sysfunc(close(&dsid)); %put &dset has &nvars variable(s) and &nobs observation(s).; %end; %else %put Open for data set &dset failed - %sysfunc(sysmsg()); %mend obsnvars; %obsnvars(Sasuser.Houses)
sasuser.houses has 6 variable(s) and 15 observation(s).