2017-09-14 18 views
0

我目前只是從.txt文件導入以下數據。如何解釋在SAS中對txt文件使用INFILE時的空格?

George Washington  02/22/1732 12/14/1799 
John Adams    10/19/1735 07/04/1826 
Thomas Jefferson  04/13/1743 07/04/1826 
James Madison   03/16/1751 06/28/1836 
James Monroe   04/28/1758 07/04/1831 
Andrew Jackson   03/15/1767 06/08/1845 
John Quincy Adams  07/11/1767 02/23/1848 
William Henry Harrison 02/09/1773 04/04/1841 

我用下面的代碼:

data presidents; 
    infile "G:\DeadPresidents.txt"; 
    input Name $23. Birth mmddyy10. Death mmddyy10.; 
run; 

這讓我的姓名和出生日期正確讀取,但它不會在死亡之日起讀,因爲SAS認爲,兩個日期之間的空間是死亡變量的一部分。如果我改變

Birth mmddyy10. 

Birth mmddyy11.它工作正常。

有什麼辦法讓空間的SAS帳戶分開txt文件中的變量?我想能夠使用mmddyy10,因爲這是實際日期變量的長度。

回答

3

您可以移動光標。相對運動

input Name $23. Birth mmddyy10. +1 Death mmddyy10.; 

或絕對

input Name $23. @24 Birth mmddyy10. @35 Death mmddyy10.; 

或者,如果你知道,出生和死亡既不是所有空格,然後使用修改列表模式

input Name $23. Birth :mmddyy10. Death :mmddyy10.; 

請注意,如果您分配一個INFORMAT到變量和使用列表模式輸入,那麼你不需要指定信息的寬度,因爲無論如何SAS會忽略它,並調整它用於線上數據的寬度。

input Name $1-23 Birth Death ; 
informat birth death mmddyy. ; 
+0

太好了,謝謝! – Bob