如何将 SAS 数据列的输出转换为宏变量?
例如:
Var1 | Var2
-----------
A | 1
B | 2
C | 3
D | 4
E | 5
如果我想要一个包含 Var1 中所有值的宏变量用于 PROC REG 或其他过程怎么办?我如何将该列提取到可在其他 PROCS 中使用的变量中?
换句话说,我想生成等效的语句:
%LET Var1 =
A
B
C
D
E
;
但是我会从之前的过程中得到不同的结果,所以我不能只做一个“%LET”。我一直在探索 SYMPUT 和 SYMGET,但它们似乎只适用于单一观察。
谢谢。
最佳答案
proc sql;
select var1
into :varlist separated by ' '
from have;
quit;
创建 &varlist.
宏变量,由分隔符分隔。如果您不指定分隔符,它会创建一个仅包含最后一行值的变量。
还有很多其他方法,但这是最简单的。例如,CALL SYMPUTX
将执行相同的操作,只是将所有行合并为一个很复杂。
关于sas - 将 SAS 数据列转换为宏变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25816462/