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中的不同值求和。
答案 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