В SAS, как условно свернуть строки, заменив одну строку с явно заданным именем, представляющую сумму значений?
В частности, я хочу создать таблицу частот, которая отображает частоты значений Подкласс, но при условии, что эта частота> 9.В любом другом случае (частота <10) я хочу, чтобы частота учитывалась как сумма частот, ограниченная значением <em>Класс .В наборе данных отсутствуют пропущенные или нулевые значения.
Freq Class Subclass
---------------------
20 1 1a
20 1 1b
2 1 1c
2 1 1d
2 1 1e
1 1 1f
22 2 2a
6 2 2b
2 2 2c
1 2 2d
31 3 3a
17 3 3b
7 3 3c
3 3 3d
3 3 3e
Мой текущий подход создал первую таблицу, используя:
proc sql;
create table as
select* count (distinct subjectID) as count
from DATASET1
group by Subclass
;
run; quit;
Желаемый результат будет выглядеть примерно так:
Freq Class Subclass
---------------------
20 1 1a
20 1 1b
7 1 OTHER (1c, 1d, 1e, 1f)
22 2 2a
9 2 OTHER (2b, 2c, 2d)
31 3 3a
17 3 3b
13 3 OTHER (3c, 3d, 3e)
ПредпочтительноЯ хотел бы дополнительно явно указать значение Subclass , представляющее суммированное измерение в соответствии с идентификаторами измерений, представленных в строках.В этом примере это будут имена суммированных подклассов.
Я пытался использовать процедуру Proc means
, которая выдает новый набор данных всех Subclasses
с частотой <10, а не суммарное значение.</p>