如何根据公共 ID 合并来自 table 的行? SAS公司

How to merge rows from table based on a common ID? SAS EG

我知道那里有一些类似的问题,但作为一个菜鸟,我想找到适合我的具体代码。

在 SAS EG 项目中,我有一个名为 WORK.QUERY_FOR_TABLE1 的查询结果,其中包含 4 列: ID1 ID2 TEXT1 TEXT2

由于每个 ID1 有多个 ID2,这是唯一的,我想合并基于 ID1 的行和包含带有分隔符的文本的列,例如: 来源:

ID1 ID2 TEXT1 TEXT2
1   1   ABC   DEF
1   2   GHI   JKL
2   1   ABC   DEF

结果:

ID1 TEXT
1   ABC,DEF,GHI,JKL
2   ABC

对代码有任何想法(包括调用我在项目中已有的查询结果)吗?

谢谢!

您必须将一些实际的 SAS 代码添加到您的 Enterprise Guide 项目中才能执行此操作。

创建一个新变量并使用 CATX() 函数构建字符串。使用BY分组处理。

data want;
  do until (last.id1);
    set QUERY_FOR_TABLE1 ;
    by id1 ;
    length text 0;
    text=catx(',',text,text1,text2);
  end;
  keep id1 text;
run;