Re: [程式] SAS不同群組的時間相減

看板Statistics作者 (Go)時間11年前 (2014/10/21 22:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
僅供參考... data a1; input v1 $ v2 v3 time6. v4 time6.; cards; A 2 12:00 13:00 A 1 13:01 14:00 A 3 14:20 15:30 B 1 12:00 12:30 B 2 13:00 12:02 ; run; proc sort data=a1; by v1 v2; run; data a2; set a1; by v1; if first.v1 then output; if last.v1 then output; run; data a3; set a2; d=v4-lag(v3); run; proc sort data=a3; by v1 v2; run; data a4; set a3; by v1; if last.v1 then output; run; proc print data=a4; run; ※ 引述《MOONY135 (談無慾)》之銘言: : ※ 引述《MOONY135 (談無慾)》之銘言: : : ------------------------------------------------------------------------ : : [軟體程式類別]: : : 請填入軟體程式類別,例如:SAS、SPSS、R、EVIEWS...等 : : SAS : : [程式問題]: : : 資料處理、迴歸、敘述統計、logistic、probit...等 : : 資料處理 : : [軟體熟悉度]: : : 中(3個月到1年 : : [問題敘述]: : : 我有一筆資料如下 : : 希望作出不同MONBR的最後一筆OTU_TIME-第一筆的IN_TIME 並存到另外一個欄位 : : 例如 MONBR A 是 : : 27Jun2014 14:57:53-23Jun2014 14:57:50 : : MONBR B 是 : : 25Jun2014 14:47:18-23Jun2014 14:47:12 : : MONBR 班別 IN_TIME OUT_TIME : : A 1 23Jun2014 14:57:50 23Jun2014 14:57:50 : : A 2 23Jun2014 14:57:51 23Jun2014 14:57:51 : : A 3 23Jun2014 14:57:52 23Jun2014 14:57:52 : : A 4 23Jun2014 14:57:53 27Jun2014 14:57:53 : : B 1 23Jun2014 14:47:12 23Jun2014 14:47:12 : : B 2 23Jun2014 14:47:15 23Jun2014 14:47:15 : : B 3 23Jun2014 14:47:18 25Jun2014 14:47:18 : : [程式範例]: : 我改成這樣 應該是可以了 請大家幫我看看有沒有邏輯上的問題 : data step1; : set 資料; : by MONBR; : if first.MONBR then OUTPUT; : if last.MONBR then OUTPUT; : /*這樣會取出同MONBR的第一個班別跟最後一個班別*/ : run; : data STEP2; : set STEP1; : by MONBR; : 準備用來減的時間=ifn( first.MONBR , (.),lag(IN_TIME)); : MONBR_TOTAL_TIME=IN_TIME-準備用來減的時間; : /*如果是同MONBR的第一個班別 就將IN_TIME那欄填上遺漏值 : 然後把該IN_TIME往下一格 這樣就可以拿來相減*/ : run; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.5.174 ※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1413902982.A.F80.html
文章代碼(AID): #1KHdA6-0 (Statistics)
文章代碼(AID): #1KHdA6-0 (Statistics)