Sas PROC SQL:收集集合还是组集合?

Sas PROC SQL:收集集合还是组集合?,sas,proc-sql,Sas,Proc Sql,鉴于以下数据 data tmp; input class $ age gpa graduated; datalines; A 16 2.47 1 B 13 3.65 1 A 13 2.04 0 B 12 2.3 0 C 15 3.58 1 ; run; 我正在寻找这个输出: class|unique_ages A|13, 16 B|12, 13 C|15 来自Hive/ApacheSpark的函数,如collect\u set+concat

鉴于以下数据

data tmp;
   input class $ age gpa graduated;
   datalines;
    A 16 2.47 1
    B 13 3.65 1
    A 13 2.04 0
    B 12 2.3 0
    C 15 3.58 1
;
run;
我正在寻找这个输出:

class|unique_ages
A|13, 16
B|12, 13
C|15
来自Hive/ApacheSpark的函数,如
collect\u set
+
concat\u ws
工作得很好,但我在SAS中还没有找到类似的函数

PROC SQL;
    SELECT
        class
        * some grouping function on `age`;
    FROM tmp
        GROUP BY class
    ;
QUIT;

类似的答案如下所示:。按行分组聚合和连接。

proc-sql没有该功能,但您可以在datastep中使用first完成该功能。最后

data tmp;
input class $ age $  gpa graduated;
datalines;
A 16 2.47 1
B 13 3.65 1
A 13 2.04 0
B 12 2.3 0
C 15 3.58 1
;
run;


 proc sort data=tmp out =have;
 by class age;
 run;

data want(keep = class group_ages);
set have ;
by class;
retain group_ages;
length group_ages $20.;
if first.class then group_ages = ' ';
else group_ages= catx(',', group_ages, age);
if last.class then output;
run;

如果是头等舱,则不应为组年龄=“”;如果是头等舱,则组年龄=年龄;相反