首页 > 解决方案 > 引用宏变量

问题描述

假设我有一个包含 10 个变量的表:var1、var2... var10,我想从 10 个初始变量中创建其他 9 个变量:coef1、coef2.... coef9,例如:

coef1 = var2 gt .,
coef2 = var3 gt .,
...
coef9 = var10 gt .,

我尝试如下代码:

%macro mymacro;
%do i = 1 %to 9;
 data mydata;
  set mydata;
  coef&i = var&i+1 gt .,
 run;
%end;
%mend;

%mymacro;

但这不起作用,我想问题是SAS无法解决var&i+1。我应该怎么解决?

标签: loopsvariablessassas-macro

解决方案


使用数组而不是宏来循环变量。或者将您的数据重组为长格式并使用该格式。

data want;
set have;

array coef(*) coef:;
array _var(*) var2-var100;

do i=1 to 99;
  coef(i) = _var(i+1) gt .;
end;

run;

推荐阅读