Я хотел бы создать новые переменные «Вес» и «Рост», используя переменные от А до D:
DATA:
A B C D
Jim Weight 180 Screen
Jim Weight 200 C1
Jim Height 60 Screen
Jim Height 61 C3
Tod Weight 190 Screen
Tod Weight 201 C1
Tod Height 70 Screen
Tod Height C1
Переменная «Вес» будет иметь следующие критерии: Установите «Вес» для столбца «С», если столбец «Столбец»B = вес, столбец D = C1 и столбец C не пропущен.В противном случае, если столбец D не является C1 или отсутствует столбец C, используйте столбец C, где столбец D - экран.Говоря простым языком, скажем, Джим был взвешен во время скрининга, а не для С1, тогда я бы хотел сохранить его вес на экране.Или, если он был показан на С1, но уайт отсутствует, я бы хотел сохранить его вес на экране.Аналогично для переменной высоты.
Мой неправильный код:
DATA MYTEST;
SET TEST.TEST;
if B = 'WEIGHT' and D = 'C1D1' and not missing(C) then NEW = C;
else if (missing(C) or D ~= 'C1') and B = 'WEIGHT' then WEIGHT = C where D = 'Screen';
if B = 'HEIGHT' and D = 'C1D1' and not missing(C) then NEW = C;
else if (missing(C) or D ~= 'C1') and B = 'HEIGHT' then WEIGHT = C where D = 'Screen';
else WEIGHT = 'NA';
RUN;
PROC PRINT DATA = MYTEST;
RUN;
Желаемый результат:
DATA:
A Weight Height
Jim 200 60
Tod 201 70