【发布时间】:2015-04-05 12:11:38
【问题描述】:
我已经(并且将来会收到)许多使用分号作为分隔符和逗号作为小数分隔符的 CSV 文件。 到目前为止,我无法找到如何使用 proc import 或以任何其他自动化方式将这些文件导入 SAS,而无需手动处理变量名。
创建一些示例数据:
%let filename = %sysfunc(pathname(work))\sap.csv;
data _null_;
file "&filename";
put 'a;b';
put '12345,11;67890,66';
run;
导入代码:
proc import out = sap01
datafile= "&filename"
dbms = dlm;
delimiter = ";";
GETNAMES = YES;
run;
在导入后,变量“AMOUNT”的值,例如 350,58(对应于美国格式中的 350.58)在 SAS 中看起来像 35,058(意思是三万五千...)(并且在重新导出到德语 EXCEL 它看起来像 35.058,00)。 一个简单但肮脏的解决方法如下:
data sap02; set sap01;
AMOUNT = AMOUNT/100;
format AMOUNT best15.2;
run;
我想知道是否有一种简单的方法可以为 CVS-import 定义小数分隔符(类似于分隔符的规范)。 ..或与我的解决方法相比的任何其他“更清洁”的解决方案。 非常感谢!
【问题讨论】:
-
35.358,00,这看起来像一个字符串变量。是 35,058,00 吗?
-
谢谢,我已经编辑了我的帖子!
标签: csv sas decimalformat