我有一个数据集,变量为col1,col2,col3,...,col15.我想将它们重命名为new1,new2,new3,...,new 15.我可以写15次相似的重命名col1 = new1; 在SAS中,但我如何使用循环实现此目的?谢谢.
首先,目前尚不清楚您是在讨论数据步骤rename中proc datasets还是数据步骤中的语句.如果您不需要对数据执行任何其他操作,则应该使用proc数据集来执行此操作,因为否则(在数据步骤中)您不必要地读取/写入数据集中的每个记录,只是为了更改变量名称.
如果您正在使用数据步骤,请使用
rename col1-col15=new1-new15;
我不确定你是否可以在proc数据集中使用该快捷方式.这将我们带到你的循环问题.除非您多次或动态地执行此操作,否则复制/粘贴代码15次可能同样容易.这是一种生成所需语句的方法,将其放在宏变量中,并在重命名语句中使用该宏变量:
data _null_;
  length myVar $ 1000;
  *myVar='';
  do i=1 to 15;
    myVar=catx(' ',myVar,' ',cats('col',i,'=','new',i));
  end;
  call symput('rename',myVar);
run;
%put &rename;
proc datasets library=mylibrary;
  modify mydataset;
  rename &rename;
run;