【发布时间】:2015-06-02 11:00:12
【问题描述】:
在将excel文件导入SAS时,发现由于变量格式错误导致导入不正确。
尝试导入的表如下所示:
ID Barcode
1 56798274
2 56890263
3 60998217
4 SKU89731
...
我使用的代码如下:
PROC IMPORT OUT= WORK.test
DATAFILE= "D:\Barcode.xlsx"
DBMS=EXCEL REPLACE;
RANGE="Sheet1$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
发生的情况是“条形码”列具有 best12。格式,因此 ID=4 的情况会得到一个缺失值 ('.'),因为它们最初既有字符又有数字。
由于无法在 proc 步骤中更改变量的格式,我如何才能正确导入文件,并且只能使用 SAS 编辑器?
编辑:
另一个完成一半工作并且可能会提供一些灵感的选项是通过数据步骤导入来动态更改变量的格式:
libname excelxls Excel "D:\Barcode.xlsx";
data want;
set excelxls.'Sheet1$'n (DBSASTYPE=(Barcode='CHAR(255)'));
run;
使用上面的代码,我强制 SAS 以我想要的格式 (char) 导入变量,但仍然会为 ID=4 中的值生成缺失值。
【问题讨论】: