#sas
#sas
Вопрос:
В SAS я хочу использовать функцию ‘if ~ else if’ для выполнения некоторых инструкций, если первые данные являются символьными, и для выполнения других инструкций, если они являются числами.
Я пытался использовать оператор ‘if ~ else if’, но я не знаю, как указать условный оператор.
В этом коде,
data pr1;
input ~~~~
put profname$ course;
cards;
LEE 22
15 PARK
;
run;
Я хочу показать это.
profname course
LEE 22
PARK 15
Что я могу вставить в ‘~ ~ ~’??
Комментарии:
1. Вы определенно можете обработать это в SAS (и Крис Лонг предлагает хорошее решение ниже), но было бы разумно исправить порядок в исходной системе, где возникает проблема.
Ответ №1:
Возможно, вы могли бы применить здесь какую-нибудь хитрую магию ввода, но я думаю, что самым простым и ясным решением было бы прочитать в обоих столбцах символьные данные, а затем протестировать их, чтобы увидеть, в каком столбце какие данные:
data pr1 (keep = profname course);
* Declare PROFNAME as character and COURSE as numeric;
length profname $ 20 course 8;
* Read in two columns of data;
input col1 $ col2 $
if input(col1, ??best.) = . then do;
* If COL1 cannot be converted to a number, assume it is a name;
profname = col1;
course = input(col2, ??best.);
end; else do;
* Otherwise assume COL2 is the name;
profname = col2;
course = input(col1, ??best.);
end;
cards;
LEE 22
15 PARK
;
run;
??
Модификаторы в INPUT()
функции подавляют обычные предупреждения, когда значение не может быть обработано.