2017-07-29 239 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