转换为数字时避免使用无效数据语句

时间:2013-11-18 21:34:20

标签: sas

我有一个包含多个变量的大表,这些变量将输入到统计分析中。作为一名统计学家,我更喜欢所有因素都是数字因素,因此它们可以在回归模型中以可预测的方式工作,其格式可以显示数值的标签,例如:种族,性别。

当我set原始数据时,我重命名我要重新编码的所有字符变量,以添加后缀c(用于字符值)。然后,我为每个语句使用input语句,并使用相应的best1.best8.或适当的格式。

问题是当缺失的变量被编码为实际缺失值时,日志会变得混乱,例如.。我可以为每个变量添加一行if not missing(varc) then var = input(varc, best8.);,但这似乎效率低,难以阅读。

有没有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:1)

创建这样的格式并使用它代替best8.

proc format library=work;
    invalue myform
    '' = .
    other=best8.
    ;
run;
options fmtsearch=(work);

答案 1 :(得分:1)

如果您可以完全消除缺失值消息(包括可能存在问题的消息),您可以在信息中添加??,告诉它不要向您发出警告。

var=input(varc,??8.);

答案 2 :(得分:0)

你能尝试使用

吗?
PROC STDIZE .. 
REPONLY MISSING=0;
RUN;