Я проверил это предыдущее сообщение (LINK) для потенциального решения, но все еще не работает. Я хочу суммировать строки, используя идентификатор, как общий идентификатор. Переменная num
является постоянной. В id
и comp
две переменные, которые я хочу использовать создающих в pct
переменную, которая = сумма [comp
= 1]/num
Сумма по вертикали по условию
Есть:
id Comp Num
1 1 2
2 0 3
3 1 1
2 1 3
1 1 2
2 1 3
Want:
id tot pct
1 2 100
2 3 0.666666667
3 1 100
В настоящее время имеют:
proc sort data=have;
by id;
run;
data want;
retain tot 0;
set have;
by id;
if first.id then do;
tot = 0;
end;
if comp in (1) then tot + 1;
else tot + 0;
if last.id;
pct = tot/num;
keep id tot pct;
output;
run;
One follow-up: Почему я теряю все переменные из набора данных, и вывод содержит только три из инструкции sql? – Jebediah15
Поскольку оператор SQL определяет, какие переменные будут выводиться. Документация SAS PROC SQL неплоха с множеством соответствующих примеров. Так я преподавал сам синтаксис SQL. – DomPazz