SAS PROC SQL - 按组将变量值连接成单个值

SAS PROC SQL - Concatenate variable values into a single value by group

我有一个数据集,其中包含 'factor' 个值和相应的 'response' 个值:

data inTable;
  input fact $ val $;
  datalines;
  a 1
  a 2
  a 3
  b 4
  b 5
  b 6
  c 7
  d 8
  e 9
  e 10
  f 11
;
run;

我想按因素汇总响应选项,即我需要

我非常清楚如何在数据步骤中实现这一点 运行 通过值循环并应用 CATX(发布 here)。但是我可以对 PROC SQL 做同样的事情吗,使用 GROUP BY 和 SUM() 或 CATX() 的一些字符模拟的组合?

感谢您的帮助,

德米特里

如果您想应用任何类型的逻辑,从前面的行向前传递大量值,则数据步骤是适合在 SAS 中使用的工具。

任何 SQL 解决方案都将非常笨拙 - 您需要将输入 table 与其自身连接 n 次,其中 n 是任何因子的不同值的最大数量,并且您还需要定义一个顺序键,保留用于连接的行顺序。

可在 proc sql 中使用的聚合函数列表可在此处获得: http://support.sas.com/kb/25/279.html

虽然其中一些确实适用于字符变量,但没有用于字符串连接的聚合函数。