我是SAS的新手,我使用proc format
将值归因于代码:
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
代码设置为.
,但作为字符设置,而不是缺少值。
如何将其设置为缺失?
答案 0 :(得分:1)
put()
函数创建一个字符值。如果要转换回数字,请与input()
结合使用,例如:
DATA foo;
SET bar;
my_var = input(put(my_var ,code_to_value.),best.);
RUN;
答案 1 :(得分:1)
Allan的open
是一种非常普遍和合法的结构。
以下是有关更深入理解的更多信息。
r
input(put
语句创建value
。格式始终执行'到文本'映射。
Proc FORMAT
,format
和PUT
函数以编程方式应用 PUTC
语句会创建PUTN
。
invalue
,informat
和INPUT
函数没有直接将数值映射到数值的格式/函数组合。
在使用指定的数字信息之前,将INPUTC
与数字一起使用将执行对字符的隐式转换(本身并不是坏事)。此示例显示INPUTN
和INPUT()
。
INVALUE