Sas 使用proc格式设置缺少的值
我是SAS的新手,我使用Sas 使用proc格式设置缺少的值,sas,proc-format,Sas,Proc Format,我是SAS的新手,我使用proc格式为代码赋予值: proc format; value code_to_value -1 = . 1 = 0.5 2 = 0.25 3 - high = 0; run; 然后将其转换为数据集中的数字列 DATA foo; SET bar; my_var = put(my_var ,code_to_value.); RUN; 问题是此代码将所有-1代码设置为,但将其作为字
proc格式
为代码赋予值:
proc format;
value code_to_value
-1 = .
1 = 0.5
2 = 0.25
3 - high = 0;
run;
然后将其转换为数据集中的数字列
DATA foo;
SET bar;
my_var = put(my_var ,code_to_value.);
RUN;
问题是此代码将所有-1
代码设置为
,但将其作为字符,而不是缺少的值
如何将其设置为missing?函数创建一个字符值。如果要转换回数值,请与input()
组合,例如:
DATA foo;
SET bar;
my_var = input(put(my_var ,code_to_value.),best.);
RUN;
艾伦的输入(put
是一种非常常见和合法的构造
这里有更多的信息来加深理解
Proc FORMAT
的value
语句创建一个格式
。格式始终执行“到文本”的映射
- 数字格式将数字值映射为字符值
- 字符格式将字符值映射为字符值
- 可以使用
、PUT
和PUTC
函数以编程方式应用格式PUTN
invalue
语句创建一个informat
- 数字信息将字符值映射为数字值
- 字符信息将字符值映射到字符值
- 可以使用
、INPUT
和INPUTN
函数以编程方式应用信息INPUTN
INPUT()
与数字一起使用将执行到字符的隐式转换(这本身不是一件坏事)。此示例显示INVALUE
和INPUT
proc format;
invalue code_to_value
-1 = .
1 = 0.5
2 = 0.25
3 - high = 0;
run;
data have;
do my_var = -2 to 4; output; end;
run;
DATA want;
SET have;
my_varx = input(my_var, code_to_value.);
RUN;
----- LOG -----
NOTE: Numeric values have been converted to character values at the places given by: