kur*_*urp 4 formatting sas type-conversion data-conversion
我正在尝试使用INPUT功能,因为它总是被建议,但似乎SAS在正确解释数量方面存在一些问题,例如:2,30 1,61 0,00 ......我最终得到了缺失值.也许是因为逗号是数千个分隔符,SAS来自;)
data temp;
    old = '1,61';
    new = input(old, 5.2);
run;
为什么上面的结果是新的= .?
似乎我找到了一些解决方法 - 在调用INPUT函数之前使用TRANWRD用逗号替换逗号(下面的视频代码),但这是非常难看的解决方案,我想必须有一个合适的解决方案.
data temp;
    old = '1,61';
    new = input(tranwrd(old,',','.'), 5.2);
run;
小智 5
new = .您的示例中的原因是因为SAS不将逗号识别为小数分隔符.请参阅日志中的注释.
注意:在第4行第11列中函数INPUT的参数无效.old = 1,61 new =.ERROR = 1 N = 1注意:无法在以下位置执行数学运算.操作结果已设置为缺失值.
该文档包含各种SAS信息的列表.根据文档,您可以使用该COMMAX信息.
COMMAXw.d - 使用分隔每三个数字的句点和用于分隔小数部分的逗号来写入数值.
修改后的代码如下所示:
data temp;
    old = '1,61';
    new = input(old,commax5.);
run;
proc print;
结果输出是:
Obs    old      new
 1     1,61    1.61
如果要将new变量保持为相同的格式,只需将语句添加format new commax5.;到数据步骤即可.
感谢Tom指出SAS使用该INPUT()功能中的信息.
| 归档时间: | 
 | 
| 查看次数: | 2098 次 | 
| 最近记录: |