作者Neroth (Not Exist)
看板Statistics
標題Re: [程式] SAS read in formatted data
時間Fri Sep 21 01:10:53 2018
※ 引述《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://webptt.com/m.aspx?n=bbs/Statistics/M.1537463458.A.A3D.html