2016-12-02 247 views
0

好吧,我有一個很難格式化這個SAS格式datalines

data practice; 
input 
Datalines; 
employee_id Name gender years dept  salary Birthday 

     1 Mitchell, Jane A f 6  shoe  22,450 12/30/1960 
     2 Miller, Frances T f 8 appliance  .  11/27/1965 
     3 Evans, Richard A m 9 appliance 42,900 02/15/1973 
     4 Fair, Suzanne K f 3 clothing  29,700 03/09/1958 
     5 Meyers, Thomas D m 5 appliance  33,700 10/22/1961 
     6 Rogers, Steven F m 3 shoe   27,000 09/12/1960 
     7 Anderson, Frank F m 5 clothing  33,000 03/09/1958 
     10 Baxter, David T m 2  shoe   23,900 11/25/1966 
     11 Wood, Brenda L f 3  clothing  33,000 01/14/1962 
     12 Wheeler, Vickie M f 7 appliance  31,500 12/23/1975 
     13 Hancock, Sharon T f 1 clothing  21,000 01/17/1972 
     14 Looney, Roger M m 10 appliance  31,500 06/09/1973 
     15 Fry, Marie E  f 6 clothing  29,700 05/25/1967 
; 
run;quit; 
Proc print data=practice; 
run;quit; 

好我的問題是有辦法做到這一點,而不必指望每一個人的空間我的最後一個問題?即使我的數據仍然沒有正確地打印出我做錯了什麼?在此先感謝這應該是我的最後一個問題之後,我應該爲這個決賽做好準備。

+0

您的輸入語句放在datalines之前。你需要用$指定哪個字符。 – Reeza

+0

我的不好,我實際上並沒有進入SAS atm,因爲......學校課程問題。無論如何,我的輸入是在我的datalines之前,但由於某種原因,當我把$。在每個輸入變量之後,它仍然沒有正確格式化它們。我可以不用計數,也可以不計算我需要用什麼計數? – Thatbadguy

回答

1

如果您沒有指定字符長度,SAS將使用它遇到的第一個值的長度並將其分配給該列中的所有值。您可以在數據行語句之前使用語句length var $w;來設置自己的長度。使用選項dsd告訴SAS使用逗號作爲變量分隔符,將引號中包含的字符串作爲單個變量讀取,並在保存變量之前將它們除去。如果使用空格作爲分隔符,請確保在dataline語句下面的每行前面沒有空格。

data practice; 
infiles datalines dsd; 
length Name $50. dept $9.; 
input employee_id Name $ gender $ years dept $  salary $ Birthday MMDDYY10.; 
format Birthday MMDDYY10.; 
Datalines; 
1, "Mitchell, Jane A", f, 6,  shoe,  "22,450", 12/30/1960 
2, "Miller, Frances T", f, 8, appliance,  , 11/27/1965 
; 
run; 
Proc print data=practice; 
run;quit;