作者MOONY135 (谈无慾)
看板Statistics
标题Re: [程式]SAS不同群组的时间相减
时间Tue Oct 21 16:54:29 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/Statistics/M.1413881672.A.CD6.html