全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2598 2
2012-03-13
在sas中。

数据集中存在变量
var1 var2 var3 adtc bdtc cdtc ddtc edtc ……
data list;
set list;
adt=input(adtc, best.);
bdt=input(bdtc, best.);
cdt=input(cdtc, best.);
ddt=input(ddtc, best.);
……
run;
如果变量名的后三位是‘dtc’, 那么生成一个新的变量后面两个是‘dt’。
无法判断存在多少个变量名后三位是‘dtc’的。
我该怎么写这个程序呢?

谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-13 19:33:51
自己的问题自己回复
万分感谢crackman,是看了他的帖子‘跟crackman读sas程序(106)—批量修改变量名’改的。


data list;
    input aaa adtc bdtc cdtc ddtc edtc@@;
    datalines;
    0 1 2 3 4 5
    ;
run;

ods listing close;
ods output position = temp;
proc contents data = list varnum;
run;
ods listing;

data temp;
    set temp;
    if upcase(substr(strip(reverse(variable)), 1, 3))='CTD' then var=reverse(substr(strip(reverse(variable)), 4));
    if ^missing(var);
run;

proc sql noprint;
    select put(count(num), 1.) into :num from temp;
    select strip(var) into :var1-:var&num. from temp;
quit;

%macro final;
data list_final;
    set list;
    %do i=1 %to #
    %let j=&&var&i.;
    &j.dt=put(&j.dtc, z2.);
    %end;
run;

%mend;

%final;


二维码

扫码加我 拉你入群

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

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

2012-3-13 22:48:25
学习了~~~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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