我是SAS新手。我在一个文件夹中有12个(每月数据)数据集。 数据集的名称是:
201401
201402
201403
...
201411
201412
每个数据包含10个变量。所有数据的变量名称都相同。
我只需要10个中的3个变量,并按new_201401
重命名数据,依此类推。
我正在使用Keep Var1 Var2 Var3;
手动尝试,但有没有简单的方法或宏,所以我们可以快速进行?提前谢谢。
答案 0 :(得分:1)
我认为这会解决问题:
%macro keep(table,var1,var2,var3,set);
data &table (keep=&var1 &var2 &var3);
set &set;
run;
%mend keep;
答案 1 :(得分:1)
您可以使用以下宏重命名它们(注意:%if
条件只是拆分为包含一位数的前导0
}:
%macro monthly(year=,prefix=) ;
%do i=1 %to 2 ;
%if %eval(&i<10) %then Data_&year.0&i=&prefix&i ;
%else Data_&year&i=&prefix&i ;
%end ;
%mend monthly ;
然后,您可以将这些值传递到proc datasets
,无论您需要多少年:
proc datasets library=work ;
change %monthly(year=2014,prefix=new_) %monthly(year=2015,prefix=new2_);
run ;