全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5142 12
2012-07-02
数据集中,有N个变量名以“DTC”结尾的变量。我想把他们都keep出来,应该怎么写?
二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-2 11:48:08
好像是 keep :DTC   你试一下
二维码

扫码加我 拉你入群

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

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

2012-7-2 14:28:57
data a;
input addtc $ ddtc dd;
cards;
a 1 2
a 2 3
;
run;

data b;
set sashelp.vcolumn;
where libname='WORK' and memname='A' and substr(left(reverse(name)),1,3)='ctd';;
run;
data b;
set b;
if _n_=1 then do; vlist=name;retain vlist;end;
else vlist=compress(vlist||'*'||name);
run;

data b;
set b;
by libname;
if last.libname;
vlist=tranwrd(vlist,'*',' ');
run;
proc sql noprint;
select vlist into :vlist
from b;
quit;
data c;
set a;
keep &vlist;
run;
二维码

扫码加我 拉你入群

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

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

2012-7-2 14:57:43
macro
二维码

扫码加我 拉你入群

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

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

2012-7-3 15:14:31
感谢 mymine,我在qq群里得到的答案,思路和 mymine 一致,有点小出入。

在select into中使用 separated by,可以更简洁。

data a;
input addtc $ ddtc dd;
cards;
a 1 2
a 2 3
;
run;

data b;
set sashelp.vcolumn;
where libname='WORK' and memname='A' and substr(left(reverse(name)),1,3)='ctd';;
run;
proc sql noprint;
select name into :keep
separated by " "
from b;
quit;

data c;
set a;
keep &keep;
run;
二维码

扫码加我 拉你入群

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

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

2012-7-3 21:26:27
这个语句果然不错,以前没有用到过
又学到了一招
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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