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

看板Statistics作者 (談無慾)時間9年前 (2014/10/21 16:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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), 來自: 114.35.215.137 ※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1413881672.A.CD6.html
文章代碼(AID): #1KHXz8pM (Statistics)
文章代碼(AID): #1KHXz8pM (Statistics)