Что я хочу сделать: Мне нужно создать новые переменные для каждой метки значений переменной и выполнить некоторую перекодировку. У меня есть все метки значений, выводимые из файла SPSS (см. Образец).Создайте новые переменные из значений формата
Пример:
proc format; library = library ;
value SEXF
1 = 'Homme'
2 = 'Femme' ;
value FUMERT1F
0 = 'Non'
1 = 'Oui , occasionnellement'
2 = 'Oui , régulièrement'
3 = 'Non mais j''ai déjà fumé' ;
value ... (many more with different amount of levels)
Новая переменная будет фактическим один без F и с подчеркиванием + уровень (например, уровень FUMERT1F 0 стал бы FUMERT1_0).
После этого мне нужно перекодировать переменные по этой схеме:
data ds; set ds;
FUMERT1_0=0;
if FUMERT1=0 then FUMERT1_0=1;
FUMERT1_1=0;
if FUMERT1=1 then FUMERT1_1=1;
FUMERT1_2=0;
if FUMERT1=2 then FUMERT1_2=1;
FUMERT1_3=0;
if FUMERT1=3 then FUMERT1_3=1;
run;
Любая помощь будет оценена :)
EDIT: Оба ответа от Джо и один из data_null_ работают, но StackOverflow выиграл «Позвольте мне привести несколько правильных ответов.
Вы не объясняют, как используются метки значений? Похоже, вы делаете манекены, и SAS имеет PROC для этого. –
Я использую их в proc reg, но я могу изменить свой метод для proc surveyreg с помощью класса. – Oligg
Да, это то же самое, что и инструкция CLASS делает только инструкцию CLASS. –