全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2055 6
2012-08-17
数据如图所示,a b c三个变量为肿瘤的定性变量,1,3分别代表恶性和不清楚,2代表良性,a1 b1 c1分别是肿瘤部位,附在a b c之后。我想新生成一个变量d,只挑出a b c是1或者3的,
d的值汇总该观测所有恶性和不清楚的肿瘤。第一个人就是“乳腺(1)”,第二个人是“肾(1)”,第三个人是“大脑(1)&乳腺(3)”,这个程序怎么写?
附件列表
retain.jpg

原图尺寸 9.26 KB

retain.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2012-8-17 17:42:17
data a(drop=d1 d2 d3)
if a in(1,3) then d1=compress('"'||a1||'('||a||')'||'"');
if b in(1,3) then d2=compress('"'||b1||'('||b||')'||'"');
if c in(1,3) then d3=compress('"'||c1||'('||c||')'||'"');
d=catx('&',d1,d2,d3);
二维码

扫码加我 拉你入群

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

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

2012-8-17 17:46:41
stormhoof 发表于 2012-8-17 17:42
data a(drop=d1 d2 d3)
if a in(1,3) then d1=compress('"'||a1||'('||a||')'||'"');
if b in(1,3) then  ...
兄弟,这样是可以,但是我有几十个变量呢,我想用array 和do循环来做,可以实现吗,不想生成新变量,再将新变量一个个合并起来
二维码

扫码加我 拉你入群

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

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

2012-8-17 17:50:24
stormhoof 发表于 2012-8-17 17:42
data a(drop=d1 d2 d3)
if a in(1,3) then d1=compress('"'||a1||'('||a||')'||'"');
if b in(1,3) then  ...
data e;
set ****;
informat dex $10.;
array tumor(3) a b c;
array dep(3) $ a1 b1 c1;
retain dex;
do i=1 to 3;
if tumor(i) in (1,3) then dex=dex||strip(dep(i))||strip(tumor(i));
end;
run;

为什么这样 retain dex的时候,dex就变空了
二维码

扫码加我 拉你入群

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

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

2012-8-17 18:33:58
是不是我问的问题太难了,没有人会
二维码

扫码加我 拉你入群

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

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

2012-8-17 19:31:15
复制代码
根据stormhoof 的回答改编
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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