变量upc已在我的酷数据集中定义。如何将其转换为宏变量?我想把文字和数字结合起来。例如,blah应该等于upc = 123;
data cool;
set cool;
blah = catx("","upc=&upc","ccc")
run;
答案 0 :(得分:1)
如果upc是一个数字变量而你只想将其值包含在某些字符串中,那么你不需要做任何特殊的事情。连接函数会在自动连接之前将其转换为字符:
data cool;
blah = catx("","upc=",upc,"ccc");
run;
结果:
upc----blah
123 upc= 123ccc
顺便说一句,如果你想连接它们之间没有空格的字符串,你可以使用函数CATS(),它从每个参数中去掉所有前导和尾随空格。
答案 1 :(得分:0)
以下测试代码适用于我的SAS 9.3 x64 PC。 请注意:
1. symputx()提供数据集和宏变量之间的连接。
2.如果不需要分隔字符,cats()将比catx()更合适。
3.如果您没有尝试创建新数据集,数据_NULL_
就可以了。
您可以检查日志以查看是否正在分配正确的值。
比尔
data a;
input ID $ x y @@;
datalines;
A 1 10 A 2 20 A 3 30
;
run;
options SymbolGen MPrint MLogic MExecNote MCompileNote=all;
data _NULL_;
set a;
call symputx(cats("blah",_N_),cats(ID,x),"G");
run;
%put blah1=&blah1;
%put blah2=&blah2;
%put blah3=&blah3;