2017-07-29 186 views
0

我正尝试在sas中导入文本文件。数据如下:SAS中导入.txt文件

AccNumber   Name      Date of Birth   Type      City      Score     
1211111111   Mmmmm Ggggg    01-Dec-1989    Base      Nanded     111      
7222222222   Rannnn Sssss   14-Jan-1989    Silver     mumbai      222 

FILENAME REFFILE '/folders/myshortcuts/MyFolder/AccountChar.txt'; 
PROC IMPORT DATAFILE=REFFILE 
DBMS=csv 
OUT=WORK.IMPORT2; 
GETNAMES=YES; 
delimiter='09'x; 
RUN; 
PROC CONTENTS DATA=WORK.IMPORT2; RUN; 

但是,导入后,我得到一个包含107列的数据集,只有帐号列显示正确的数据。

需要帮助。

日志输出:
注意:从infile中REFFILE.The最小记录长度被读取296条记录为128.The最大记录长度是150 注:数据集WORK.IMPORT5具有296个观察和1个变量。 注意:使用DATA语句(总处理时间): 实时0.01秒 cpu时间0.00秒 在REFFILE的WORK.IMPORT5中创建的296行。

注意:WORK.IMPORT5数据集已成功创建。 注意:数据集WORK.IMPORT5有296个观察值和1个变量。 注意:使用PROCEDURE IMPORT(总处理时间): 实时0.14秒 cpu时间0.13秒 PROC CONTENTS DATA = WORK.IMPORT5;跑;

+0

您需要显示文本文件中的实际内容。运行一个简单的数据步骤来检查。 '数据_null_; infile'/folders/myshortcuts/MyFolder/AccountChar.txt'obs = 2;输入;列表;运行;' – Tom

+0

输出:规则:---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4-- - + ---- ---- 5 + ---- ---- 6 + ---- ---- 7 ---- + 8 ---- ---- + 9-- - + ---- 0 1个账户号码姓名出生类型的日期 101城市FicoScore 150 2 9281332154米什蒂古普塔01日 - 12月1989年基础 101纳西克757 150 注:2个纪录从infile中读“/文件夹/myshortcuts/MyFolder/AccountChar.txt”。 – GNH

+2

将GUESSINGROWS更改为更大的数字,即10000. PROC IMPORT是一个猜测过程,如果它不适用于通过编辑发送LOG到您的问题的大数字。 – Reeza

回答

0

您正在提供一个分隔符选项'09'x(制表符),因为您的dbms设置为csv,所以该选项将被忽略。

尝试:

FILENAME REFFILE '/folders/myshortcuts/MyFolder/AccountChar.txt'; 
PROC IMPORT DATAFILE=REFFILE 
DBMS=dlm /* use delimiter option */ 
OUT=WORK.IMPORT2; 
GETNAMES=YES; 
delimiter='09'x; 
RUN; 
PROC CONTENTS DATA=WORK.IMPORT2; RUN; 

欲了解更多信息,请参阅documentation

+0

感谢您的意见。更新dbms = dlm工作。 但是,我的输入文件包含6列,在数据集中,我只有1个变量。有没有选择将数据保存在6列而不是1? – GNH

+0

你的日志输出是什么?作为@reeza提到,请更新您的问题与编辑.. –

1

从您发布的样品,它看起来评论像你的文件不是分隔的文件,但它似乎有数据固定的列位置。只要找出每列放在哪一行,并直接使用数据步骤读取它。例如:

data WORK.IMPORT2; 
    infile '/folders/myshortcuts/MyFolder/AccountChar.txt' firstobs=2 truncover; 
    input 
    AccountNumber $ 1-25 
    Name $ 26-50 
    @51 Date_of_Birth date11. 
    Type $ 74-98 
    City $ 99-123 
    Fica 124-130 
    ; 
    format date_of_birth date9. ; 
run; 
+0

是的。它不是一个制表符分隔的文件。使用您建议的步骤成功导入。感谢您的投入。 – GNH