SAS Put语句-为什么它可以用来将字符转换为数字


代码很简单:
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"函数不是用来将数值转换为字符值的吗?为什么它把阿拉巴马映射到01 ?

变量STATE必须是数字(1)并应用了格式,或者是字符(01)并应用了格式。如果它是Alabama的字符值,就不会发生这种情况。

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

最新更新