我已经(并将在未来收到)许多CSV文件,这些文件使用分号作为分隔符,逗号作为小数分隔符.到目前为止,我无法找到如何使用proc导入将这些文件导入SAS - 或以任何其他自动方式导入,而无需手动处理变量名称.
创建一些示例数据:
%let filename = %sysfunc(pathname(work))\sap.csv;
data _null_;
file "&filename";
put 'a;b';
put '12345,11;67890,66';
run;
Run Code Online (Sandbox Code Playgroud)
导入代码:
proc import out = sap01
datafile= "&filename"
dbms = dlm;
delimiter = ";";
GETNAMES = YES;
run;
Run Code Online (Sandbox Code Playgroud)
导入后,变量"AMOUNT"的值,例如350,58(相当于美国格式的350.58)在SAS中看起来像35,058(意思是三十五......)(并且在重新导出到德国EXCEL之后看起来像35.058,00).一个简单但又脏的解决方法如下:
data sap02; set sap01;
AMOUNT = AMOUNT/100;
format AMOUNT best15.2;
run;
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种简单的方法来定义CVS-import的小数分隔符(类似于分隔符的规范)...或任何其他"清洁"解决方案与我的解决方法相比.提前谢谢了!
这不是一个编程问题,但SAS程序员可能仍然知道答案:关闭后可以使SAS保存设置,因此重启后窗口排列也是一样的.我们在服务器上运行SAS,但此功能仍然有效.
SAS 9.3 TS Level 1M2("Base SAS")
X64_S08R2Windows NT Server-Version
Windows版本6.1.7601
启动SAS后,在最后一次SAS关闭之前的位置出现"编辑器"窗口.
现在的问题是,当打开第二个空编辑器窗口时(或当我通过SAS菜单打开另一个SAS程序时),这个新的编辑器窗口不会出现在我希望它出现的位置 - 即在它所在的位置第一个编辑器窗口已对齐.
任何想法非常感谢!