Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两个时间戳之间出现的R-bin时间戳_R_Timestamp - Fatal编程技术网

在两个时间戳之间出现的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分钟段(从项目开始时间开始)。。。