全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5968 5
2011-03-26
我有一百个变量..想要在每个变量名前都加一个词..比如"Open_XXXX"....请问有快速方法可以搞定吗??


谢谢各位了!!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-3-26 22:02:35
SAS好像有个专门存储工作表中变量名的表vtable,不知是否可以利用下
1# vieri32
二维码

扫码加我 拉你入群

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

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

2011-3-26 22:25:08
网上找来的

options macrogen mprint mlogic;
%macro rename(lib,dsn);
options pageno=1 nodate;
proc contents data=&lib..&dsn;
title "Before Renaming All Variables";
run;
proc sql noprint;
  select nvar into :num_vars
from dictionary.tables
where libname="&LIB" and
        memname="&DSN";
  select distinct(name) into :var1-
:var%TRIM(%LEFT(&num_vars))
  from dictionary.columns
where libname="&LIB" and
        memname="&DSN";
quit;
run;
proc datasets library=&LIB;
   modify &DSN;
rename
  %do i=1 %to &num_vars;
&&var&i=NEWNAME_&&var&i.
  %end;
;
quit;
run;
options pageno=1 nodate;
proc contents data=&lib..&dsn;
title "After Renaming All Variables";
run;
%mend rename;
%rename(WORK,ONE)
二维码

扫码加我 拉你入群

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

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

2011-3-27 01:54:52
3# ntsean
这么复杂啊...
二维码

扫码加我 拉你入群

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

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

2011-3-27 07:35:00
这是macro,你只需要代入你的东西就可以了

就是最后一行括号里面把work改为你的library name, one改为你的dataset

还有一个地方就是里面 一个 NEWNAME 改为你的新name,应该是 open
然后run macro就可以了
vieri32 发表于 2011-3-27 01:54
3# ntsean
这么复杂啊...
二维码

扫码加我 拉你入群

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

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

2011-3-27 09:20:26
ntsean 发表于 2011-3-27 07:35
这是macro,你只需要代入你的东西就可以了

就是最后一行括号里面把work改为你的library name, one改为你的dataset

还有一个地方就是里面 一个 NEWNAME 改为你的新name,应该是 open
然后run macro就可以了
vieri32 发表于 2011-3-27 01:54
3# ntsean
这么复杂啊...
嗯....十分感謝您....

雖然我只是部分變量要改....不過這個MACRO太有用了...謝謝!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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