Как я могу сделать сумму различных значений, используя минимальный код в SAS - PullRequest
0 голосов
/ 03 октября 2018

SAS proc sql позволяет пользователю делать подсчет (отличное имя), основываясь на некоторой группе по измерению (ям).Какой самый быстрый способ достижения той же функции для SUM (отдельное имя)?

data: have
grp1 grp2 col1 col2
a     b    20   .
a     b    30   10
a     b    20   10
a     b     .   10

, данные хотят:

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

Таким образом, в основном для измерения (a, b),Мне нужна сумма различных значений в col1 и col2.

1 Ответ

0 голосов
/ 03 октября 2018

сумма (отличное число), как указано в вашем вопросе, должна работать:

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
...