我是SAS新手,我正在使用大型数据集来创建一个包含每组id数据的列。我的数据集的简化形式如下所示:
ID名称
1 AAA
1 AAA
1 BBB
2 CCC
2 CCC
2 AAA
3 DDD
3 BBB
3 AAA
4 BBB
4 BBB
我要找的结果是:
ID名称NEW_ID
1 AAA AAA, BBB
1 AAA AAA, BBB
1 BBB AAA, BBB
2 CCC CCC, AAA
2 CCC CCC, AAA
2 AAA CCC, AAA
3 DDD DDD, BBB, AAA
3 BBB DDD, BBB AAA
3 AAA DDD, BBB, AAA
4 BBB BBB
非常感谢您的帮助。记住ID可能并不总是作为一个数字。谢谢。
答案 0 :(得分:0)
我无法想到在单个数据步骤中执行此操作的方法。但是2很容易。首先收集值,然后将它们连接回主数据集。
data first;
set have;
by id;
format COL $2000.;
retain COL;
if ^last.id then
col = strip(col) || strip(name) || ",";
else do;
col = strip(col) || strip(name);
output;
end;
run;
data want;
merge have first;
by id;
run;