首页 文章

SAS proc导入中的变量格式

提问于
浏览
0

将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;

会发生什么是“条形码”栏目最好12 . 格式,因此ID = 4的情况得到一个缺失值(' . '),因为它们最初有字符和数字 .

由于无法在proc步骤中更改变量的格式,如何正确导入文件, only using SAS editor

编辑:

执行一半工作的另一个选项可能会给出一些灵感,它是通过导入数据步骤动态更改变量的格式:

libname excelxls Excel "D:\Barcode.xlsx";

data want;
set excelxls.'Sheet1$'n (DBSASTYPE=(Barcode='CHAR(255)'));
run;

使用上面的代码我强制SAS以我想要的格式(char)导入变量,但是仍然会为ID = 4生成值的缺失 .

2 回答

  • 2

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

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

  • 2

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

    • 使用 guessingrows= 选项增加SAS用于确定类型的行数 .

    • 如果要完全控制导入:将 proc import 放入日志的数据步骤代码复制并粘贴到程序中 . 现在您可以修改它以完全按照您的需要读取数据 .

相关问题