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
虽然其中一些确实适用于字符变量,但没有用于字符串连接的聚合函数。
我有一个数据集,其中包含 '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
虽然其中一些确实适用于字符变量,但没有用于字符串连接的聚合函数。