SAS循环用于重命名变量

时间:2014-07-14 16:07:26

标签: loops sas rename sas-macro do-loops

我想替换一些变量的值并重命名它们。基本上,我有很多变量称为f2 f3 f4,依此类推至f1065。逻辑如下:我需要用变量f2 f3 f4到f12的值替换变量f14 f18等的值4到f54。 f13,f55 f56和f57原样保留。然后我需要用f58 f59到f68的值替换f70 f74等4到f110。所以f69没有变化。所以我需要说SAS以下内容:

let k=2
do i=4 to 57 by 4;
f&i=f&k;
end;
k=&k+1;

并多次这样做,以便下一次

let k=58
do i=70 to 113 by 4;
f&i=f&k;
end;
k=&k+1;

如何自动完成此任务,甚至可能删除我用于替换的变量(我的意思是变量,如f2 f3 f4 ... f12)。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用数组完成此操作。只需为变量的一部分定义一个数组,并使用索引来迭代它们。信息:http://www2.sas.com/proceedings/sugi30/242-30.pdf

您也可以使用宏变量,但由于宏增加了复杂性,除非您真的需要,否则几乎总是更好避免。