楼主: revelc
2066 5

[原创博文] 求助 批量 修改 变量名 [推广有奖]

  • 0关注
  • 0粉丝

本科生

76%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0.0006
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2608 点
帖子
102
精华
0
在线时间
101 小时
注册时间
2005-11-22
最后登录
2018-7-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有一数据 变量名为 d23 e40 c50 ... zh9000 共500个不规则变量名

如何改为                   d1   d2    d3  ...  d500

请各位大大不吝赐教!
二维码

扫码加我 拉你入群

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

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

关键词:不规则 如何

沙发
wylkwq 发表于 2011-9-19 16:08:27 |只看作者 |坛友微信交流群
同问,呵呵

使用道具

藤椅
yugao1986 发表于 2011-9-19 16:19:03 |只看作者 |坛友微信交流群
三人行必有我师

使用道具

板凳
revelc 发表于 2011-9-19 16:23:23 |只看作者 |坛友微信交流群
yugao1986 发表于 2011-9-19 16:19
看看这篇http://blog.csdn.net/yugao1986/article/details/6224326,
可是这些都只是加坠子啊

使用道具

报纸
yugao1986 发表于 2011-9-19 16:37:20 |只看作者 |坛友微信交流群
revelc 发表于 2011-9-19 16:23
可是这些都只是加坠子啊
简单修改下,原理是一样的
  1. /* 以此为例,4个变量 */
  2. DATA A;
  3. d23=1; e40=2; c50=3; zh9000=4;
  4. run;
  5. /* 原理,将变量读入红变量进行修改 */
  6. %macro rename(lib,dsn,newname);
  7. proc sql noprint;
  8.    select nvar into :num_vars
  9.    from dictionary.tables
  10.    where libname="&LIB" and memname="&DSN";
  11.    select distinct(name) into :var1-:var%trim(%left(&num_vars))
  12.    from dictionary.columns
  13.    where libname="&LIB" and memname="&DSN";
  14. quit;
  15. proc datasets library = &LIB;
  16.    modify &DSN;
  17.    rename
  18.       %do i = 1 %to &num_vars.;
  19.       &&var&i = &newname.&i.
  20.       %end;
  21.    ;
  22. quit;
  23. %mend rename;
  24. data b;
  25. set a;
  26. run;
  27. %rename(WORK,b,D);
复制代码
运行结果:
NOTE: Renaming variable c50 to D1.
NOTE: Renaming variable d23 to D2.
NOTE: Renaming variable e40 to D3.
NOTE: Renaming variable zh9000 to D4.

NOTE: MODIFY was successful for WORK.A.DATA.
NOTE: PROCEDURE DATASETS used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
revelc + 1 + 1 + 1 热心帮助其他会员

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

三人行必有我师

使用道具

地板
revelc 发表于 2011-9-19 17:25:42 |只看作者 |坛友微信交流群
yugao1986 发表于 2011-9-19 16:37
简单修改下,原理是一样的 运行结果:
NOTE: Renaming variable c50 to D1.
NOTE: Renaming variable d ...
感谢 虽然有点复杂 不过问题解决了

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 21:41