全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6661 10
2014-11-20
我有如下一个数据集:
复制代码
想把它合并成如下数据集:
复制代码
烦请各位大神给支招,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-20 13:55:59
补充一下:以变量a为分组标志,对于每一组,变量b、c仅有一个数值,其余都是缺失值。
如zhang组中,变量b的值为1,其余是缺失值,变量c的值为2,其余为缺失值;
再如wang组中,变量b的值为3,其余是缺失值,变量c的值为4,其余为缺失值。
对于分组数据而言,这个数据集该如何操作成每组仅一条记录呢?
二维码

扫码加我 拉你入群

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

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

2014-11-20 14:15:54
data a ;
input a$ b  c  ;
cards;
zhang 1 .  
zhang . 2
wang 3 .
wang . 4
        ;

run;
proc sort data=a;
by a;
data b(keep=a d);
format b1 c1 $12.;
set a;
by a;
retain b1 c1;
if first.a then do;
b1=trim(left(b));
c1=trim(left(c));
end;
else do;
b1=trim(left(b1))||trim(left(b));
c1=trim(left(c1))||trim(left(c));
end;
d=compbl(compress(b1||c1,'.','l'));
if last.a then output;
run;
二维码

扫码加我 拉你入群

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

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

2014-11-20 14:17:41
怎么乱掉了呢。。。。

proc sort data=a;
by a;
data b(keep=a d);
format b1 c1 $12.;
set a;
by a;
retain b1 c1;
if first.a then do;
b1=trim(left(b));
c1=trim(left(c));
end;
else do;
b1=trim(left(b1))||trim(left(b));
c1=trim(left(c1))||trim(left(c));
end;
d=compbl(compress(b1||c1,'.','l'));
if last.a then output;
run;
二维码

扫码加我 拉你入群

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

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

2014-11-20 14:44:02
xuelin55 发表于 2014-11-20 14:17
怎么乱掉了呢。。。。

proc sort data=a;
这个结果是不对的,目标并不是要把数据进行连接而成为了字符串,原始数据是数值形式的,即便衍生新的变量也不要改变数据类型。
非常感谢你的热心帮助,请再根据目标改动一下,谢谢!
二维码

扫码加我 拉你入群

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

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

2014-11-20 20:53:43
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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