看板 Statistics 關於我們 聯絡資訊
※ 引述《AmigoSafin ()》之銘言: : [軟體程式類別]: : 請填入軟體程式類別,例如:SAS、SPSS、AMOS、R、STATA、EVIEWS...等 : SAS : [程式問題]: : 資料處理、迴歸、敘述統計、logistic、probit...等 : 資料處理 : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 新手 : [問題敘述]: : 大家好, : 遇到兩個需要使用mixed format input的狀況 : 希望不是我自己想得太複雜 : 以下為題目及我使用的code : 還請大家不吝給予指點 : 謝謝大家~ : (1) : 資料長這樣: : Bodo’s Bagels, Virginia, $100,000 : Lee’s Sandwich, Virginia, $37,500 : 我的code: : DATA SASweek1.industry; : INFILE "&Dirdata.Assignment1_Q6_data.txt" DLM="," DSD termstr=crlf MISSOVER; : LENGTH Company $ 15; : INPUT Company State $ Expense :COMMA8.; : RUN; : (2) : 資料如下: : McDonald,15:02:00,Washington DC,$20,000.00 : J. Imgo,13:48:00,Virginia,$1,000.09 : 我的code: : DATA SASweek1.award; : INFILE "&dirdata.Award_1.txt" DLM="," DSD termstr=crlf; : INPUT Name $ Time1 Location $ Prize ; : INFORMAT Name $ 8. Time1 time10. Prize COMMA10.2; : FORMAT Time1 time8.1 Prize DOLLAR10.2; : RUN; : 第二個時間沒有print 出來 : Prize也不對 : 而且只有第一列 不知道哪裡該做修正 : 第一個也是只有印出第一列 : 覺得應該要用mixed formatted input : 但總是很容易亂掉 : 應該是觀念還不夠清楚 : 還請大家多多指教 : 謝謝了~~ 大致調整了一下, 第一題把100,000改成1,000,000來測試 所以code長這樣: %let newd=E:\Workspace\SAS\SASClass\Data; %let filein =test_data.txt; data industry; infile "&newd\&filein" dlm=',' dsd truncover; length Company $ 15 State $ 9; input Company State Expense dollar12.; run; proc print data=industry; run; 因為是貨幣, 所以把comma改成用dollar來取 第二題的code: %let newd=E:\Workspace\SAS\SASClass\Data; %let filein =test_data2.txt; data award; infile "&newd\&filein" delimiter=',' dsd truncover; length Name $ 8 Location $ 13; input Name Time1:time8. Location Prize dollar15.2; run; proc print data=award; format Time1:time8. Prize dollar15.2; run; dollar我都放長一點來測試, 不過所有的觀測值都有跑出來 參考看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.148.104 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1537463458.A.A3D.html