[英]SAS: Using the Put statement to create dynamic code
我想使用PUT
语句创建动态代码。 根据SUGI 29的这份文件( http://www2.sas.com/proceedings/sugi29/175-29.pdf ),
put
"data XXXXX; "
/ 'infile "&datadir/&compid&filetype" missover ls=' tbla_fle
';' / 'input'
;
相当于跑步
data onecomp ;
infile
"&datadir/&compid&filetype"
missover ls = 268 ;
input
但是,当我尝试类似于其示例的操作时, PUT
语句中包含的代码无法运行,而是被写入SAS输出日志:
data _NULL_;
put // "data put_test;" / "b=2;" / "run;";
run;
In Output Log:
data put_test;
b=2;
run;
我检查了SAS文档,似乎PUT
仅用于“将行写到SAS日志,SAS输出窗口或最新FILE语句中指定的外部位置”。 它无处说明可以用来创建动态生成的代码。
我知道我一定很想念东西,但是我不确定。 我正在使用SAS Enterprise Guide 4.1。
谢谢!
想法是使用put
将生成的代码写入文件。 然后,将文件%include
到SAS会话中以运行它。 您缺少的是file
语句和%include
指令。
data _null_;
file 'temp.sas'; /* redirects put to a file instead of the SAS log */
put
"data XXXXX; "
/ 'infile "&datadir/&compid&filetype" missover ls=' tbla_fle
';' / 'input'
;
run;
%include 'temp.sas';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.