Я имею дело с непрерывной переменной и имеет такие значения, как < 3, NOTE и NOTE1. Я хочу избавиться от этих значений и потерять их. для чего это будет командной линией?Как заменить ненужные значения на отсутствующие в sas?
Благодаря
Я имею дело с непрерывной переменной и имеет такие значения, как < 3, NOTE и NOTE1. Я хочу избавиться от этих значений и потерять их. для чего это будет командной линией?Как заменить ненужные значения на отсутствующие в sas?
Благодаря
Если переменная имеет значения символов, то это значение символа, а не числовой. Вам также нужно исправить это. Я бы предложил использовать функцию anyalpha(), чтобы определить, можете ли вы преобразовать ее в число.
If anyalpha(old_var)=0 then new_var = input(old_var, best12.);
Вы можете просто умножить переменную на 1; это заменяет все числовые значения хранятся в виде символьных значений с их числовыми коллегами и заполнит все символьные значения как отсутствующий:
data temp;
input var $;
datalines;
Hello
1
<3
3
Note1
5
;
run;
data temp2;
set temp;
var2 = var * 1;
run;
Обратите внимание, что это может дать предупреждение в зависимости от того, сколько значений символов заменяются, но это предупреждение не вызывают проблемы с результирующим набором данных.
Вы можете использовать функцию ввода для преобразования от символа в числовой.
new_var = input(old_var, ?? best.);
немедленной подачи опции ??
перед Informat, вы инструктаж SAS подавить любые предупреждающие сообщения или заметки было бы нормально печатать, когда он встречает проблему, применяющее Informat.
Приятная вещь в этом подходе заключается в том, что он прост и передает ваше намерение преобразовать значение из строки в числовое, игнорируя любые конверсии типов, с которыми вы сталкиваетесь.
Зачем писать код, который приводит к предупреждениям, когда есть много других допустимых способов его решения? –