如何使用SAS中的最少代码对不同值求和

时间:2018-10-03 14:26:02

标签: sas

SAS proc sql允许用户基于某些按维分组进行计数(不同的colname)。为SUM(唯一的colname)实现相同功能的最快方法是什么?

grp1 grp2 col1_sum     col2_sum
a      b    50(20+30)   10

想要的数据:

purrr::imap_dfr

所以基本上,对于维度(a,b),我需要对col1和col2中的不同值求和。

1 个答案:

答案 0 :(得分:2)

您问题中提到的

sum(distcolt col)应该起作用:

data have;
input grp1 $1. grp2 $3 col1 col2;
datalines;
a b 20 .
a b 30 10
a b 20 10
a b  . 10
;run;

proc sql;
select
  grp1, grp2,
  sum(distinct col1) as s1,
  sum(distinct col2) as s2,
from have
group by grp1, grp2;
run;

...应该产生结果:

grp1 grp2   s1   s2
---- ---- ---- ----
   a    b   50   10