|
SAS если нет такого значения, записать его в переменную
|
|||
---|---|---|---|
#18+
Есть вот такой код: proc freq data=Status noprint; table ethnic /nocum out=EthnicFreq; run; data EthnicFreq; set EthnicFreq; format percent 4.1; name = " " || put(Ethnic, EthnicF.); col1 = put(count, 2.)||" "||' ('|| put(percent, 4.1)||'%)'; drop count percent Ethnic; run; ethnic может принимать 5 значений (от 1 до 5). Если в переменной "ethnic" датасета "Status" каждое значение встречается хотя бы один раз, то всё работает как надо. Если какого-то значения нет (к примеру, 1) в датасет должен всё-равно быть записано 1, просто второй столбец забивается нулями. Можете подсказать как это лучше организовать? Второй час мучаюсь, гугл ничего толкового тоже не выдал ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2016, 15:35 |
|
SAS если нет такого значения, записать его в переменную
|
|||
---|---|---|---|
#18+
Сделала через добавление новой таблицы (с нулями) и слиянием этих двух. Есть подозрение что можно более красивым методом. Очень буду благодарна за подсказку proc freq data=Status noprint; table ethnic /nocum out=EthnicFreq; run; data EthnicFreq1; do Ethnic = 1 to 5; count = 0; percent = 0; output; end; run; data EthnicFreq; merge EthnicFreq1 EthnicFreq; by Ethnic; run; data EthnicFreq; set EthnicFreq; col1 = put(count, 2.)||' ('|| put(percent, 4.1) || '%' || ')'; name = " " || put(Ethnic, EthnicF.); drop count percent; run; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2016, 16:48 |
|
|
start [/forum/topic.php?fid=56&fpage=4&tid=2015118]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 168ms |
0 / 0 |