如何将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,但它们似乎只适用于单个观察。
谢谢。
答案 0 :(得分:5)
proc sql;
select var1
into :varlist separated by ' '
from have;
quit;
创建&varlist.
宏变量,由分隔符分隔。如果您没有指定分隔字符,则会创建一个仅包含最后一行值的变量。
还有很多其他方法,但这是最简单的方法。例如,CALL SYMPUTX
会做同样的事情,除非将所有行拉成一行很复杂。
答案 1 :(得分:0)
您可以直接在proc中使用它,不需要宏变量。为简单起见,我为var1使用了数值,但是你明白了。
function timeUp() {
setTimeout(function(){
return alert("hi");
}, 2000);
}
document
.getElementById("startGame")
.addEventListener('click', timeUp);