全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
24713 11
2012-01-05
请教各位:如何在SAS中批量修改变量名,
例如:变量名分别为V1,V2,V3........V50这50个变量,如果需要将其RENAME为V1_N,V2_N,V3_N......V50_N,该如何操作呢?
因为有多个数据库,其变量的命名方式都是一样的,为了不至于合并的时候造成差错,因此,希望能通过RENAME来重命名,而且每个不同数据库新的变量名方式不同,可以识别是哪个数据库来的变量。
因为变量个数很多,所以不想一个个rename,不知道有没有简单的方法?
尝试用ARRAY,但是,由于变量类型不同(有的是字符型,有的是数字型,有的是日期型),所以好像不行。

恳请各位帮忙解答,非常感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-1-5 19:17:35
批量获取变量名,然后批量rename 使用宏变量来实现
1.get namelist
2. generate the rename code such as
proc datasets lib=lib;
modify table;
rename
%let i=1;
%let name=%scan(&namelist.,&i.);
  %do %while(%length(&name.));
     &name.=&name._N
%let i=%eval(&i+1);
%let name=%scan(&namelist.,&i.);
  %end;
;
quit;
二维码

扫码加我 拉你入群

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

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

2012-1-6 11:08:57
leptonyu 发表于 2012-1-5 19:17
批量获取变量名,然后批量rename 使用宏变量来实现
1.get namelist
2. generate the rename code such as ...
非常感谢你的回复。但是,因为我SAS学的没那么深入,所以试了一下还是有些疑问。
我的数据保存在名a1的临时数据集中,变量名是V1-V50,那么,namelist是怎么获取的呢?
proc datasets lib=lib (这个是固定的表述么?)
modify table(这个table是特指某个数据集或文档么)
还有后面的&namelist,是不是第一步获取的文档或列表?

不好意思,因为学的不深但又想找点省事,所以问题这么多。我想着能直接套用,结果发现log窗口跳出来很多问题。

再次感谢!
二维码

扫码加我 拉你入群

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

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

2012-1-6 21:16:37
woxuanwo 发表于 2012-1-6 11:08
非常感谢你的回复。但是,因为我SAS学的没那么深入,所以试了一下还是有些疑问。
我的数据保存在名a1的临 ...
Try the contents procedure, and I provided an example here.

data test01;
        format id v1 8. v2 $10. v3 date9.;
        id = 1;
        v1 = 2;
        v2 = 'a';
        v3 = "01Jan2012"d;
run;
proc contents data = test01 out = test02(keep = name) noprint; run;
proc sql noprint;
        select compress(name||'='||name||'_n') into:renames separated by ' '
                from test02
                where lowcase(name) ne 'id';
quit;
data test03;
        set test01(rename=(&renames.));
run;
二维码

扫码加我 拉你入群

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

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

2012-1-7 00:44:07
你可以查询proc datasets的相关帮助 table是数据集名,lib=后面应该填逻辑库名
namelist需要获取,用proc sql 语句获取
楼上这位的代码也是不错,对于小数据集而言都一样
二维码

扫码加我 拉你入群

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

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

2013-10-29 11:00:00
楼上两位的代码都不错哈
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群