SAS Put语句 - 为什么它可以用于将char转换为数字?

时间:2016-06-28 17:34:55

标签: sas

代码非常简单:

data test (keep = state state_num);
set raw1314.accident2013_prf;
  state_num= put(state,z2.);
run;

变量“state”包含状态名称,该程序的输出为:

  Obs     STATE      state _num
   1      Alabama       01  

但是不是“put”函数用于将数值转换为字符值吗?为什么在这里将“Alabama”映射到“01”?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您的变量STATE必须是数字(1)并且应用了格式或应用了格式的字符(01)。如果它是阿拉巴马州的字符值,则不会发生这种情况。

data _null_;
x=put('Alabama', z2.);
put x;
run;

结果:

 55         
 56         data _null_;
 57         x=put('Alabama', z2.);
                         ___
                         484
 NOTE 484-185: Format $Z was not found or could not be loaded.

 58         put x;
 59         run;
 Al