如何将不必要的值替换为sas中的缺失?

时间:2016-05-08 09:58:36

标签: sas missing-data

我正在处理一个连续变量,它的值类似于< 3,NOTE和NOTE1。我想摆脱这些值并使其缺失值。这将是什么命令行?

谢谢

3 个答案:

答案 0 :(得分:2)

如果你的变量有字符值,那么它是一个字符值,而不是数字。你也需要解决这个问题。我建议使用anyalpha()函数来确定是否可以将其转换为数字。

If anyalpha(old_var)=0 then new_var = input(old_var, best12.);

答案 1 :(得分:0)

您可以使用输入功能将字符转换为数字。

new_var = input(old_var, ?? best.);

通过在信息之前提供??选项,您指示SAS禁止在遇到应用信息的问题时通常会打印的任何警告消息或注释。

这种方法的好处在于它很简单,它传达了将值从字符串转换为数字的意图,同时忽略了您遇到的任何类型转换。

答案 2 :(得分:-1)

您可以简单地将变量乘以1;这将替换存储为字符值的所有数值及其数字对应项,并将所有字符值填充为缺失:

data temp;
   input var $;
   datalines;
    Hello
    1
    <3
    3
    Note1
    5
;
run;

data temp2;
    set temp;
    var2 = var * 1;
run;

请注意,这可能会发出警告,具体取决于要替换的字符值的数量,但此警告不会导致生成的数据集出现问题。