Как записать качественную переменную с более чем 100 манекенами на несколько уровней как количественную в SAS - PullRequest
0 голосов
/ 10 ноября 2018

Я работаю с SAS и хочу записать переменную, которая содержит более 50 различных качественных макетов.Например, штат США

В данном случае я просто хочу уменьшить их до 4 или 5 уровней манекена в качестве количественной переменной.

У меня есть несколько идей, например, для использования оператора if / else, однако проблема в том, что мне нужно записать и указать каждое имя области в SAS, а код выглядит как очень тяжелый.

Есть ли другие способы сделать это без избыточного кода?Или чтобы не писать каждое конкретное имя переменной?В САС.

Любые идеи приветствуются !!

1 Ответ

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

Метод 1:

Используйте IN, но вам все еще нужно перечислить переменные. Вы также можете сделать это через формат, но вы все равно должны сначала определить формат.

if state in ('AL', 'AK', 'AZ' ... etc) then state_group = 1;
else if state in ( .... ) then state_group = 2;

Метод 2:

Для формата вы создаете формат, используя PROC FORMAT, а затем применяете его.

proc format;
value $ state_grp_fmt
'AL', 'AK', 'AZ' = 1
'DC', 'NC' = 2 ;
run;

И тогда вы можете использовать его с оператором PUT.

State_Group = put(state, state_grp_fmt);
...