如何在catx语句中组合文本和数字

时间:2014-01-24 22:34:19

标签: sas

变量upc已在我的酷数据集中定义。如何将其转换为宏变量?我想把文字和数字结合起来。例如,blah应该等于upc = 123;

    data cool;
    set cool;

    blah = catx("","upc=&upc","ccc")
    run;

2 个答案:

答案 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;