【发布时间】:2017-08-14 17:21:17
【问题描述】:
SAS EG
我有一个制表符分隔的文本文件,必须每月导入。所以我通过数据步骤编写了一个导入程序。
data lib.txtimp;
%let _EFIERR_=0;
infile "file/path/tabdlm.txt" lrecl=256
dlm='09'x missover firstobs=2 DSD;
informat <vars>;
format <vars>;
input <vars>;
if _ERROR_ then call symput('_EFIERR_',1);
run;
我最近遇到的一个问题是,有时某些数据线错误地有两个选项卡。文本文件很大,大约 500MB。所以我试图通过编写上面的代码来自动化这个过程,但它没有考虑到这个问题。它在那个地方写了一个空白。 当我使用内置的“导入数据”时,它首先清理原始文件,然后运行其中间数据步骤以提供所需的输出。这不会在该列中给我一个空白。它会忽略额外的选项卡。
我的文本文件的问题示例。
col1 col2 col3
1 a b
2 foo bar
3 wayout data
4 another example
有没有一种方法可以通过我的数据步骤导入来自动化清理过程?或者,你们知道我应该添加什么步骤来获得这种东西吗?
【问题讨论】:
-
“内置”导入数据是什么意思?我怀疑任何事情都是首先“清理”数据,它可能只是使用了不同的选项。
-
不,他们有。文件 -> 导入数据。如果您仔细查看状态/作业栏,它会清楚地说明步骤。它清理,然后运行中间数据步骤。
-
您指的是SAS Studio、DI、EG还是其他?该帖子未指明您正在使用的 SAS 产品。
-
抱歉!我正在使用 SAS EG。
-
删除 DSD 对你不起作用吗?