2017-02-26 92 views
0

我服用介紹到SAS課程時遇到嚴重的問題,在閱讀一些數據問:SAS欄輸入截斷

這是代碼我迄今(分配告訴我們使用列輸入)如下:

DATA shirtCol; 
    INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24; 
    DATALINES; 
    Large Red 18.97 0.25 
    Medium Blue 24.68 1.10 
    XLarge Black 29.99 1.75 
    Small Orange 15.89 0.50 
    ; 
RUN; 

PROC print data=shirtCol; 
RUN; 

我使用SAS大學版運行這段代碼,當我運行程序的價格和運費欄只有小數點後一位。有什麼我做錯了嗎?我怎樣才能讓程序不再截斷我的輸出?

回答

0

看來,SAS工作室統計的空白空間爲列。試試你輸入之前去除前導空格:

DATA shirtCol; 
    INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24; 
    DATALINES; 
Large Red 18.97 0.25 
Medium Blue 24.68 1.10 
XLarge Black 29.99 1.75 
Small Orange 15.89 0.50 
; 
RUN; 
+0

這是完全錯誤。希望這可以幫助像我這樣的未來初學者。非常感謝。 – Abdall

0

算在你的數據線的字符數,看看它爲什麼不讀書你想要什麼。請更正您的INPUT語句中的列號或刪除您似乎已添加到每行的額外空白。插入標尺線可以提供幫助。

DATA shirtCol; 
    INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24; 
*---+---10----+---20----+---30; 
    DATALINES; 
    Large Red 18.97 0.25 
    Medium Blue 24.68 1.10 
    XLarge Black 29.99 1.75 
    Small Orange 15.89 0.50 
    ; 
RUN; 

使用一致的縮進樣式可以避免此類問題。我從不縮進DATALINES;聲明。其實我從來沒有使用DATALINES;聲明,但我從不縮進CARDS;聲明,我使用它們很多。 :)

如果不工作,那麼請確保你沒有引入製表符替換空格在您的數據。我認爲SAS/Studio實際上可能會將標籤存儲在發送給SAS執行的代碼行中。您可以使用EXPANDTABS選項添加INFILE語句,讓SAS將選項卡擴展爲空間。當你在它時,你可能也想添加TRUNCOVER選項。

infile datalines expandtabs truncover ; 
+0

添加標尺線的建議。這非常有幫助,我得到了我的代碼工作。 – Abdall