在一行SAS中初始化多个变量

时间:2016-07-07 15:40:11

标签: variables initialization sas assign

这里的新SAS程序员..在.NET中,我们可以在一行中为一个行分配一个值,如下所示:

var1 = var2 = var3 = 0;

SAS中有一种语法可以做同等的吗?

2 个答案:

答案 0 :(得分:3)

没有

但还有其他方法可以完成这类事情。

最常见的是使用ARRAY和DO循环。

array varlist var1 var2 var3 ;
do i=1 to dim(varlist);
  varlist(i)=0;
end;

您可以使用ARRAY语句初始化变量。

array varlist var1 var2 var3 (3*0);

但这仅适用于数据步骤第一次迭代的初始值。

或者你可以有创意并使用宏功能来生成代码。

%sysfunc(tranwrd(var1|var2|var3|,|,%str(=0;)))

如果要将值设置为缺失,可以使用CALL MISSING()函数。

call missing(of var1 var2 var3);

答案 1 :(得分:2)

据我所知,SAS不支持多项任务。

SAS将var1 = var2 = var3 = 0;评估为var1 = (var2 = var3 = 0);,如果var1,则var2 = var3 = 0的值为1,否则返回0。