为什么下面的代码工作(&ds是12345678910),但是当我将cats更改为cat时,&ds只是空的?我希望将cats改为cat将意味着&ds就是1 2 3 4 5 6 7 8 9 10。
data new;
length ds $500;
ds = "";
do i = 1 to 10;
ds = cats(ds, i, " ");
end;
call symputx('ds', ds);
run;
%put &ds;发布于 2018-03-17 00:15:02
函数cat()不会修剪这些值,因此如果您将任何内容连接到DS并尝试将其存储回DS中,您添加的任何内容都不会被存储,因为没有存储它的空间。
看起来您实际上需要catx()函数。
ds = catx(' ',ds, i);发布于 2018-03-17 00:49:10
如果使用输入缓冲区并执行文本操作,SAS倾向于添加前导和尾随空格。您可以使用带状()和catx()函数来删除前导和尾随空格。使用catx(),您可以额外地选择指定一个分隔符。
ds = cat(strip(ds), i, " ");https://stackoverflow.com/questions/49329518
复制相似问题