Как суммировать и комбинировать наблюдения с различными общими переменными в SAS - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь объединить и суммировать определенные наблюдения набора данных с различными значениями для их общих переменных, в этом случае я пытаюсь объединить смерти трех возрастных интервалов (85-90), (91-95) , (95+) в одном (85+) возрасте. Наш учитель сказал нам, что лучше, если мы не создадим новую переменную и не воспользуемся средствами proc, таблицей и т. Д.

Я прочитал каждую страницу Google, и все, что я могу найти, - это метод объединения и суммирования по переменной, но мне не нужно суммировать всю группу, только некоторые наблюдения группы.

Имеет набор данных, такой как:

   .
   .
   .
71 to 75    3
76 to 80    4
81 to 85    2
86 to 90    3
91 to 95    1
95+         3

Я бы хотел, чтобы это было

   .
   .
   .
71 to 75    3
76 to 80    4
81 to 85    2
85+         7

Спасибо!

1 Ответ

1 голос
/ 14 апреля 2019

Создайте пользовательский формат для сопоставления существующих буквальных категорий в новые.

* A format to map literal agecat strings to broader categories;
proc format ;
  value $age_cat_want (default=20)
'86 to 90' = '86+'
'91 to 95' = '86+'
'95+' = '86+'
;

Это работает только для объединения категорий, создавая более грубую агрегацию.

Пример:

* A format to get you into the pickle you are in;
proc format;
value age_cat_have
71-75 = '71 to 75'
76-80 = '76 to 80'
81-84 = '81 to 85'
86-90 = '86 to 90'
91-95 = '91 to 95'
95-high = '95+'
;

data have;
  input age @@; 
  agecat = put (age, age_cat_have.);
datalines;
71 72 73 
76 77 78 79
82 83
87 86 86
94
99 101 113
;

proc freq data=have;
  title "Original categories are character literals";
  table agecat;
run;

* A format to map literal agecat strings to broader categories;
proc format ;
  value $age_cat_want (default=20)
'86 to 90' = '86+'
'91 to 95' = '86+'
'95+' = '86+'
;


proc freq data=have;
  title "New age categories via custom format $age_cat_want";
  table agecat;
  format agecat $age_cat_want.;
run;

Примечание. Существующая буквальная категоризация не может быть явно разделена. Вам нужно будет сделать предположение о распределении значений по возрастам в каждой категории и определить конкретный возраст, который можно применить к другому формату сопоставления возраста.

...