全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
607 2
2019-11-06

大神们,求问,怎么能把下面原始数据集根据 seq 合并变量txt?

原始:
seq

txt

1

a

1

b

1

c

1

d

2

a

2

b



想要变成这样:
seq

combine

1

a, b, c, d

2

a, b




为方便测试,我dummy了下raw data:

data raw;
length txt $10;
    seq=1; txt = 'a';output;
    seq=1; txt = 'b';output;
    seq=1; txt = 'c';output;
    seq=1; txt = 'd';output;

    seq=2; txt = 'a';output;
    seq=2; txt = 'b';output;
run;


我知道transpose能实现,想问问retain语句能实现吗?或是有什么更简单的方法吗?

拜谢~~

二维码

扫码加我 拉你入群

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

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

全部回复
2019-11-6 13:54:39
data raw;
length txt $10;
    seq=1; txt = 'a';output;
    seq=1; txt = 'b';output;
    seq=1; txt = 'c';output;
    seq=1; txt = 'd';output;
    seq=2; txt = 'a';output;
    seq=2; txt = 'b';output;
run;

data want;
   set raw;
   by seq txt;
   retain combine;
   if first.seq then combine=txt;
   else combine=cats(combine,',',txt);
   if last.seq then output;
   drop txt;
run;
二维码

扫码加我 拉你入群

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

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

2019-11-6 14:03:26
l1i2n3i4n5g 发表于 2019-11-6 13:54
data raw;
length txt $10;
    seq=1; txt = 'a';output;
谢大佬秒回
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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