楼主: nomad5
5263 12

[原创博文] 如何keep出有规律的变量名 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
94 个
通用积分
1.0000
学术水平
13 点
热心指数
13 点
信用等级
11 点
经验
1898 点
帖子
90
精华
0
在线时间
114 小时
注册时间
2010-12-18
最后登录
2022-5-2

楼主
nomad5 发表于 2012-7-2 11:00:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据集中,有N个变量名以“DTC”结尾的变量。我想把他们都keep出来,应该怎么写?
二维码

扫码加我 拉你入群

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

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

关键词:keep 数据集 如何

回帖推荐

nomad5 发表于5楼  查看完整内容

感谢 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;[/backcolor] select name into :keep [/backcolor] separated by " "[/backcolo ...

本帖被以下文库推荐

沙发
terryw 发表于 2012-7-2 11:48:08
好像是 keep :DTC   你试一下

藤椅
mymine 发表于 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;

板凳
蒹葭12 发表于 2012-7-2 14:57:43
macro

报纸
nomad5 发表于 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;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

地板
mymine 发表于 2012-7-3 21:26:27
这个语句果然不错,以前没有用到过
又学到了一招

7
mengqinqing 发表于 2012-7-3 23:03:01
学习
用自己的力量站在自己的位置

8
gaotao0727 发表于 2012-7-4 14:21:54
提供另外一种解决方案,仅供参考:
  1. .......
  2. proc contents data=test
  3. noprint
  4. short
  5. out=result(keep=name type);
  6. run;
  7. proc sql noprint;
  8. select name into :keep
  9. separated by " "
  10. from result where substr(left(reverse(name)),1,3)='ctd';;
  11. quit;
  12. ........
复制代码
衣带渐宽终不悔,为伊消得人憔悴~~

9
xiaobai922 发表于 2012-7-4 20:06:00
思路真的是很重要的哦

10
smilewang402 发表于 2012-7-5 21:16:40
nomad5 发表于 2012-7-3 15:14
感谢 mymine,我在qq群里得到的答案,思路和 mymine 一致,有点小出入。

在select into中使用 separated ...
Thanks

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 14:32