(Я новичок в SAS, и я борюсь с тем, насколько это сложно делать по столбцам, что было бы довольно легко на «нормальном» языке. Пожалуйста, потерпите меня, если это чрезвычайно просто.)
У меня есть таблица со значениями type , a1-a10 и b1-b10 , и я хотел бы найти (для каждого N ) сумма bN для тех строк, где aN положительна. Я могу сделать это по одной переменной за раз, например с чем-то вроде этого:
proc sql;
create table work.test1 as
select type, b1
from work.table
where (a1 >0);
run;
и затем суммировать все эти таблицы, а затем объединить их, но это будет много кода и немного ошибок. Есть ли хороший и компактный способ сделать это?
Редактировать: Я хотел бы получить выходную таблицу со значениями type , sum1-sum10 , где sumN - сумма, описанная выше.
Пример данных:
type | a1 | a2 | ... | b1 | b2 | ...
------------------------------------
cat 10 14 ... 1 2 ...
cat -5 3 ... 1 1 ...
dog 35 -1 ... 9 3 ...
dog 9 2 ... 0.5 1 ...
Желаемый вывод:
type | sum1 | sum2 | ...
------------------------
cat 1 3 ...
dog 9.5 1 ...
Таким образом, для каждого типа и N суммы те bN , где aN в той же строке положительны.