楼主: mars516323005
6772 2

怎么实现在SAS多个数据表中批量修改变量名 [推广有奖]

  • 2关注
  • 0粉丝

等待验证会员

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
1 小时
注册时间
2012-7-6
最后登录
2012-12-30

楼主
mars516323005 发表于 2012-11-3 23:22:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有2000多个SAS数据表,命名分别为sh60001,sd60002,...以此到2000多个,而我现在想把表的变量名Var1,Var2,Var3,改为sh60001Var1,sh60001Var2,sh60001Var3,每一个表都要这种格式,该怎么办啊?求各位大神帮助啊!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据表 VaR 怎么办 数据表

沙发
voyagevio 发表于 2012-11-8 10:08:51
写个宏实现
%macro change_name(begin,end);
local i;
%do i = &begin %to &end;
data sd&i;
rename var1=sd&i.var1 var2=sd&i.var2 var3=sd&i.var3;
run;
%end;
%mend;

调用%change_name(1,2000)

藤椅
moyunzheng 发表于 2012-11-8 11:57:57
  1. data sh60001;var1=1;var2=1;var3=1;run;
  2. data sh60002;var1=1;var2=1;var3=1;run;

  3. %macro rename;
  4. proc datasets lib=work nolist;
  5. %do order=60001 %to 60002;
  6. modify sh&order.;
  7. rename  var1=sd&order.var1 var2=sd&order.var2 var3=sd&order.var3;
  8. run;
  9. %end;
  10. quit;
  11. %mend;
  12. %rename;
复制代码
如果变量的名称是sh00001而不是sh60001的话,要做修改(Writes standard numeric data with leading 0s )
  1. data sh00001;var1=1;var2=1;var3=1;run;
  2. data sh00002;var1=1;var2=1;var3=1;run;
  3. %macro rename2;
  4. proc datasets lib=work nolist;
  5. %do order=1 %to 2;
  6. modify sh%sysfunc(putn(&order.,z5.));
  7. rename  var1=sd&order.var1 var2=sd&order.var2 var3=sd&order.var3;
  8. run;
  9. %end;
  10. quit;
  11. %mend;
  12. %rename2;
复制代码
The PUTN function along with %SYSFUNC can be used to apply the Zw.d format to the value of order. The Zw.d format writes out standard numeric data with leading zeros.
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Isavella + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 15:25