楼主: augustin4
6848 3

求助,关于sas变量连续重命名 [推广有奖]

  • 0关注
  • 0粉丝

博士生

12%

还不是VIP/贵宾

-

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

50论坛币
原来有var1-var10 10个变量,我先在想把它们的名字后的数字都加一
进行如rename var10=var11; rename var9=var10;的操作。
想变一个宏%rename来实现。
现在编到这个程度了:
  1. data one;
  2. input var1-var10;
  3. cards;
  4. 1 2 3 4 5 6 7 8 9 10
  5. ;
  6. run;
  7. ods listing close;   *不用再在输出窗口输出内容了(输出窗口不是结果查看器);
  8. ods output position=list;
  9. proc contents data=one varnum;
  10. run;
  11. ods listing;
  12. /*将var1命名为var2,以此类推*/
  13. proc sql;
  14. select put(count(*),2.) into :num from list;
  15. select variable into :var1-:var&num from list;
  16. select
复制代码

但不知道怎样得到所有数字加一后的变量名。
请问大家有没有会的。

最好不要新建一个数据集包含新名字,最好通过数字加一实现,因为实际数据量比这个要大。

最佳答案

Eternal0601 查看完整内容

没必要用宏, e.g. data two; set one; rename var1-var10=var2-var11; run;
关键词:position Variable contents proc sql listing 命名
沙发
Eternal0601 发表于 2014-11-29 19:30:59 |只看作者 |坛友微信交流群
没必要用宏, e.g.
data two;
        set one;
        rename var1-var10=var2-var11;
run;
已有 3 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
yanglun + 1 + 1 + 1 热心帮助其他会员
augustin4 + 5 + 1 + 1 + 1 热心帮助其他会员
teqel + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 2   查看全部评分

使用道具

藤椅
augustin4 发表于 2014-11-30 11:59:59 |只看作者 |坛友微信交流群
Eternal0601 发表于 2014-11-29 19:35
没必要用宏, e.g.
data two;
        set one;
额,不错!

使用道具

板凳
bobguy 发表于 2014-12-1 03:00:16 |只看作者 |坛友微信交流群
Eternal0601 发表于 2014-11-29 19:30
没必要用宏, e.g.
data two;
        set one;
The drawback of this approach is the data set needs re-build. It is fine for a small data set. For a large data set the correct way is using,

proc datasets,
   modeify dsn;
  rename ....;
quit;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Eternal0601 + 2 + 2 + 2 观点有启发

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

使用道具

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

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

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

GMT+8, 2024-4-25 08:12