将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;
“Barcode”栏目最好12。格式,因此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生成缺失值。
答案 0 :(得分:2)
我认为你的问题是你有mixed=NO
。将其更改为mixed=YES
,SAS将检查观察结果的样本,以查看变量中是否存在任何非数字字符 - 如果找到,则将变量指定为字符。
请查看链接here以获取更多信息:
答案 1 :(得分:2)
你可以转换为csv(或者xls?)文件,并且:
使用Makefile
选项增加SAS用于确定类型的行数。
如果要完全控制导入:复制guessingrows=
放入日志的数据步骤代码并粘贴到程序中。现在您可以修改它以完全按照您的意愿读取数据。