2013-10-25 27 views
0

字符我想導入CSV數據庫用下面的語句:導入在SAS:被視爲日期

PROC IMPORT OUT= WORK.claims 
DATAFILE= database.csv' 
DBMS=csv REPLACE; 
DELIMITER=","; 
GETNAMES=YES;  
RUN; 

的問題是,我有形式「十一五/ 10/2013abcedfg的變量:1234 「我想把它當成一個字符串。但SAS認爲它像一個日期,並把日期格式。然後我收到一條錯誤消息,因爲它當然不是日期。

你有解決方案嗎?

謝謝。

+0

使用'infile'來讀取數據? – JT85

回答

1

也許只是不要依賴PROC IMPORT並在數據步驟中編寫導入。 PROC IMPORT應該在您的日誌中生成其導入datastep,使用它並進行調整。

+0

這是最好的方法。當你運行PROC IMPORT時,它會爲你寫一些代碼(錯誤的代碼,但代碼不會更少)。如果您在SAS IDE中,請使用「運行 - >調用上次提交」。這會將PROC IMPORT代碼放入當前的文本編輯器中。然後調整錯誤的變量的類型,信息等。 – DomPazz

0

相反PROC進口,使用的輸入語句

DATA WORK.claims; 
format crazyvar $25 obs_num this_value 8.; 
infile "database.csv" lrecl = 500 /** Number of columns you'll need **/ 
pad = end /** Prevents truncation **/ 
dsd delimiter = ',' /**Delimiter Sensitive Data, and sets delimiter to comma **/ ; 
input obs_num crazyvar $ this_value; 
run; 

同意Vasja,PROC IMPORT有它的用途,但它並不總是你試圖在讀取數據的類型敏感。本機讀取在一定數量的行中(我認爲默認情況下是前20個),並猜測它是什麼類型的變量。

如果您需要使用PROC IMPORT,則可以將GUESSINGROWS參數設置得更高,以便讓程序更具教育性。