全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3598 8
2020-07-03
比如一个数据集 data a导入后 变量名为 _c1_,_c2_ ,..., _c40_
比如_c1_的label是id 如何将它的label “id” 替代_c1_
...以此类推
批量处理

二维码

扫码加我 拉你入群

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

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

全部回复
2020-7-3 11:49:58
attrib  _all_  label='' ;
二维码

扫码加我 拉你入群

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

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

2020-7-3 13:35:37
jg.sas 发表于 2020-7-3 11:49
attrib  _all_  label='' ;
这样只能把所有变量的label删除诶
比如第一个变量是_c1_
我想要的效果等价于rename _c1_=vlabel(_c1_) 当然这个语句运行不了
二维码

扫码加我 拉你入群

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

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

2020-7-3 14:10:58
%macro mdf(libname=,memname=);

proc sql noprint;
   select nvar
   into :nvar
   from dictionary.tables
   where libname = "&libname" and memname = "&memname";
quit;
%do s=1 %to &nvar;
data _null_;
set &memname;
call symput("varlabel",vlabel(_c&s._));
run;
data &memname;
        set &memname;
        rename _c&s._=&varlabel;
run;
%end;
%mend;


想了个办法暂时解决了下
二维码

扫码加我 拉你入群

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

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

2020-7-6 12:03:09
hyb971006 发表于 2020-7-3 14:10
%macro mdf(libname=,memname=);

proc sql noprint;
思路是对的,但是应该优化一下,你这多少个变量循环set多少次dataset,要是数据量大,估计。。。。循环做到rename后面,或者直接用call execute来做。
二维码

扫码加我 拉你入群

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

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

2020-7-7 09:43:25
孤单的我们 发表于 2020-7-6 12:03
思路是对的,但是应该优化一下,你这多少个变量循环set多少次dataset,要是数据量大,估计。。。。循环做 ...
对。。我也感觉每次data步读 效率太低了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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