使用proc格式设置缺失值

时间:2018-01-31 11:54:40

标签: sas proc-format

我是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代码设置为.,但作为字符设置,而不是缺少值。

如何将其设置为缺失?

2 个答案:

答案 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 FORMATformatPUT函数以编程方式应用

PUTC语句会创建PUTN

  • 数字信息将字符值映射到数值
  • 字符信息将字符值映射到字符值
  • 可以使用invalueinformatINPUT函数
  • 以编程方式应用信息

没有直接将数值映射到数值的格式/函数组合。

在使用指定的数字信息之前,将INPUTC与数字一起使用将执行对字符的隐式转换(本身并不是坏事)。此示例显示INPUTNINPUT()

INVALUE