我正在处理一个连续变量,它的值类似于< 3,NOTE和NOTE1。我想摆脱这些值并使其缺失值。这将是什么命令行?
谢谢
答案 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;
请注意,这可能会发出警告,具体取决于要替换的字符值的数量,但此警告不会导致生成的数据集出现问题。