SAS proc导入中的变量格式

时间:2015-06-02 11:00:13

标签: import format sas

将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生成缺失值。

2 个答案:

答案 0 :(得分:2)

我认为你的问题是你有mixed=NO。将其更改为mixed=YES,SAS将检查观察结果的样本,以查看变量中是否存在任何非数字字符 - 如果找到,则将变量指定为字符。

请查看链接here以获取更多信息:

答案 1 :(得分:2)

你可以转换为csv(或者xls?)文件,并且:

  1. 使用Makefile选项增加SAS用于确定类型的行数。

  2. 如果要完全控制导入:复制guessingrows=放入日志的数据步骤代码并粘贴到程序中。现在您可以修改它以完全按照您的意愿读取数据。