在两个时间戳之间出现的R-bin时间戳
我有一个数据帧,包括:在两个时间戳之间出现的R-bin时间戳,r,timestamp,R,Timestamp,我有一个数据帧,包括: 两列,具有不同类型的开始和结束时间戳(POSIXct类) 计划 另一个时间戳(POSIXct类)列显示 在开始和结束时间范围内发生 项目id列 项目自然有多个事件 Projid Event BEGIN_DT END_DT 1 04/12/2013 09:00:00 04/12/2013 08:12:00 04/14/2013 20:14:00 1
- 两列,具有不同类型的开始和结束时间戳(POSIXct类) 计划
- 另一个时间戳(POSIXct类)列显示 在开始和结束时间范围内发生
- 项目id列
项目自然有多个事件
Projid Event BEGIN_DT END_DT 1 04/12/2013 09:00:00 04/12/2013 08:12:00 04/14/2013 20:14:00 1 04/13/2013 15:16:24 04/12/2013 08:12:00 04/14/2013 20:14:00 2 06/06/2012 18:00:00 06/06/2012 13:54:32 08/06/2012 23:59:43 2 06/07/2012 22:54:32 06/06/2012 13:54:32 08/06/2012 23:59:43
我想为每个事件添加一个字段,显示它所属的60分钟时间段(如项目的第一小时、第二小时或第n小时等)。如何做到这一点?在
difftime
上使用floor
以小时为单位执行以下操作如何:
# Your sample data
df <- structure(list(
Projid = c(1L, 1L, 2L, 2L),
Event = structure(c(1365721200, 1365830184, 1338969600, 1339073672), class = c("POSIXct", "POSIXt"), tzone = ""),
BEGIN_DT = structure(c(1365718320, 1365718320, 1338954872, 1338954872), class = c("POSIXct", "POSIXt"), tzone = ""),
END_DT = structure(c(1365934440, 1365934440, 1344261583, 1344261583), class = c("POSIXct", "POSIXt"), tzone = "")),
.Names = c("Projid", "Event", "BEGIN_DT", "END_DT"), row.names = c(NA, -4L), class = "data.frame");
# Add hour bin
df$hourBin <- floor(difftime(df$Event, df$BEGIN_DT, unit = "hours")) + 1;
df;
#Projid Event BEGIN_DT END_DT hourBin
#1 1 2013-04-12 09:00:00 2013-04-12 08:12:00 2013-04-14 20:14:00 1 hours
#2 1 2013-04-13 15:16:24 2013-04-12 08:12:00 2013-04-14 20:14:00 32 hours
#3 2 2012-06-06 18:00:00 2012-06-06 13:54:32 2012-08-06 23:59:43 5 hours
#4 2 2012-06-07 22:54:32 2012-06-06 13:54:32 2012-08-06 23:59:43 34 hours
#您的示例数据
df在difftime
上使用floor
如何以小时为单位:
# Your sample data
df <- structure(list(
Projid = c(1L, 1L, 2L, 2L),
Event = structure(c(1365721200, 1365830184, 1338969600, 1339073672), class = c("POSIXct", "POSIXt"), tzone = ""),
BEGIN_DT = structure(c(1365718320, 1365718320, 1338954872, 1338954872), class = c("POSIXct", "POSIXt"), tzone = ""),
END_DT = structure(c(1365934440, 1365934440, 1344261583, 1344261583), class = c("POSIXct", "POSIXt"), tzone = "")),
.Names = c("Projid", "Event", "BEGIN_DT", "END_DT"), row.names = c(NA, -4L), class = "data.frame");
# Add hour bin
df$hourBin <- floor(difftime(df$Event, df$BEGIN_DT, unit = "hours")) + 1;
df;
#Projid Event BEGIN_DT END_DT hourBin
#1 1 2013-04-12 09:00:00 2013-04-12 08:12:00 2013-04-14 20:14:00 1 hours
#2 1 2013-04-13 15:16:24 2013-04-12 08:12:00 2013-04-14 20:14:00 32 hours
#3 2 2012-06-06 18:00:00 2012-06-06 13:54:32 2012-08-06 23:59:43 5 hours
#4 2 2012-06-07 22:54:32 2012-06-06 13:54:32 2012-08-06 23:59:43 34 hours
#您的示例数据
你在找活动的时间吗?你能提供你给出的例子的预期输出吗?不,我不需要事件的小时数,但它所属的第n个60分钟段(从项目开始时间开始)…你在寻找事件的小时数吗?你能提供你给出的例子的预期输出吗?不,我不需要事件的小时数,但需要它所属的第n个60分钟段(从项目开始时间开始)。。。