【发布时间】:2015-06-27 11:05:52
【问题描述】:
我想计算两个事件的差异。前五列表示事件的日期时间。其余五列表示死亡的日期时间。
dat <- read.table(header=TRUE, text="
YEAR MONTH DAY HOUR MINUTE D.YEAR D.MONTH D.DAY D.HOUR D.MINUTE
2013 1 6 0 55 2013 1 6 0 56
2013 2 3 21 24 2013 2 4 23 14
2013 1 6 11 45 2013 1 6 12 29
2013 3 6 12 25 2013 3 6 23 55
2013 4 6 18 28 2013 5 3 11 18
2013 4 8 14 31 2013 4 8 14 32")
dat
YEAR MONTH DAY HOUR MINUTE D.YEAR D.MONTH D.DAY D.HOUR D.MINUTE
2013 1 6 1 55 2013 1 6 0 56
2013 2 3 21 24 2013 2 4 23 14
2013 1 6 11 45 2013 1 6 12 29
2013 3 6 12 25 2013 3 6 23 55
2013 4 6 18 28 2013 5 3 11 18
2013 4 8 14 31 2013 4 8 14 32
我想计算时间差(in minutes)。以下代码不会去任何地方。时间戳看起来像2013-04-06 04:08。
library(lubridate)
dat$tstamp1 <- mdy(paste(dat$YEAR, dat$MONTH, dat$DAY, dat$HOUR, dat$MINUTE,sep = "-"))
dat$tstamp2 <- mdy(paste(dat$D.YEAR, dat$D.MONTH, dat$D.DAY, dat$D.HOUR, dat$D.MINUTE, sep = "-"))
dat$diff <- dat$tstamp2 -dat$tstamp2 ### want the difference in minutes
【问题讨论】:
-
0和24怎么能同时作为D.HOUR下的小时? -
好收获。这可能是数据集中的错误。修好了。
-
范围是 0-23 而不是 1-24 会更典型。 (24 小时是否表示第二天午夜之后?如果不是,那么 1 表示 12:00 AM,2 表示 1:00 AM,依此类推?)
-
我同意。我已经相应地更改了可重现的示例。
标签: r timestamp difference lubridate