Loops SAS执行循环以创建列
我在SAS数据集中有一个固定字段。我们称之为成本。 我想创建20个不同的列。Cost-5、Cost-10、Cost-15等等,但我不想将其编码出来,因为我需要对几个字段执行此操作Loops SAS执行循环以创建列,loops,sas,Loops,Sas,我在SAS数据集中有一个固定字段。我们称之为成本。 我想创建20个不同的列。Cost-5、Cost-10、Cost-15等等,但我不想将其编码出来,因为我需要对几个字段执行此操作 有人能告诉我如何在SAS的do循环中执行此操作吗?或者如果有更简单的方法,我很想知道。谢谢 这里的一般方法是使用数组,如果要对多个对象执行此操作,则可能会对这些数组使用宏 data class; set sashelp.class; array ages[5]; *your array, hold
有人能告诉我如何在SAS的do循环中执行此操作吗?或者如果有更简单的方法,我很想知道。谢谢 这里的一般方法是使用数组,如果要对多个对象执行此操作,则可能会对这些数组使用宏
data class;
set sashelp.class;
array ages[5]; *your array, holding your 5 new columns;
do _i = 1 to 5; *loop over the array;
ages[_i] = age-_i; *or -(5*_i) or whatever you are doing;
end;
run;
然后,如果要对许多变量执行此操作,请将这四行放在宏中,为可能发生的任何更改创建参数,并根据需要多次从datastep调用它。循环位于宏内部,是数据步循环,而不是宏循环
您可以在array语句中显式命名变量,也可以采用SAS默认的命名方式。如果希望智能地命名命名变量,也可以创建宏来创建命名变量。非常感谢!我现在可以用了。我真的很感激它,乔-我试图让它变老,减少5%,然后再减少10%,等等…现在我无法让它工作。我是SAS的新手。有什么想法吗?我很抱歉对年龄[\u I]=age*(.05*\u I)进行bug
ages[\u I]代码>或类似的东西?