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

Я пытаюсь рассчитать медиану, минимум и максимум для нескольких переменных за последние 5 лет в Base SAS. У некоторых переменных не было случаев заболевания в некоторые годы, поэтому 0 случаев. Когда я вычисляю сводку в SAS, я хочу включить эти нули.

Например: одна из моих переменных, скажем, X, имела 8, 6, 2, 0, 0 случаев за последние 5 лет соответственно. Когда я вычисляю сводку по этой переменной с использованием «proc-sql» или «proc-means», SAS игнорирует эти 0 и дает мне что-то отличное от того, что я ожидаю. Я хотел бы получить Min = 0, Max = 8 и Median = 2, но SAS дает мне Min = 2, Max = 8 и Median = 6, так как игнорирует нули.

Любое предложение или направление будет оценено?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Если у вас действительно отсутствуют данные, вы можете заменить их нулями, используя PROC STDIZE (при условии, что у вас есть SAS / STAT).

proc stdize data=have out=want replace; run;
0 голосов
/ 02 ноября 2018

SAS будет включать 0, оно не будет включать пропущенные. Возможно, у вас есть формат поверх вашей переменной, который показывает его как 0, когда он на самом деле отсутствует. Попробуйте удалить формат и посмотрите, так ли это, в противном случае это стандартное поведение SAS.

Вы можете удалить форматы, используя:

format var; *note lack of format, which removes the format;

Или, если вы установите option missing в 0, тогда оно будет отсутствовать как 0, но базовое значение все еще отсутствует и не будет включено. Вам необходимо изменить значения на 0.

...