如何将SAS数据列的输出转换为宏变量?
例如:
Var1 | Var2
-----------
A | 1
B | 2
C | 3
D | 4
E | 5
Run Code Online (Sandbox Code Playgroud)
如果我想将包含Var1中所有值的宏变量用于PROC REG或其他过程,该怎么办?如何将该列提取到可以在其他PROCS中使用的变量中?
换句话说,我想生成等效的语句:
%LET Var1 =
A
B
C
D
E
;
Run Code Online (Sandbox Code Playgroud)
但是我会从以前的过程中得到不同的结果,所以我不能只是执行'%LET'。我一直在探索SYMPUT和SYMGET,但它们似乎仅适用于单个观测值。
谢谢。
proc sql;
select var1
into :varlist separated by ' '
from have;
quit;
Run Code Online (Sandbox Code Playgroud)
创建&varlist.由分隔符分隔的宏变量。如果不指定分隔符,它将创建仅具有最后一行值的变量。
还有很多其他方法,但这是最简单的。 CALL SYMPUTX例如,将执行相同的操作,不同之处在于将所有行都拉成一列很复杂。
| 归档时间: |
|
| 查看次数: |
1402 次 |
| 最近记录: |