Merge Records Over Time Interval

前端 未结 3 773
梦如初夏
梦如初夏 2020-12-10 08:35

Let me begin by saying this question pertains to R (stat programming language) but I\'m open straightforward suggestions for other environments.

The goal is to mer

3条回答
  •  余生分开走
    2020-12-10 09:19

    here is an example:

    # first, merge by ID
    z <- merge(A[, -1], B, by = "ID")
    
    # convert string to POSIX time
    z <- transform(z,
      s_t = as.numeric(strptime(as.character(z$StartTime), "%H:%M:%S")),
      dur = as.numeric(strptime(as.character(z$Duration), "%H:%M:%S")) - 
        as.numeric(strptime("00:00:00", "%H:%M:%S")),
      tim = as.numeric(strptime(as.character(z$Time), "%H:%M:%S")))
    
    # subset by time range
    subset(z, s_t < tim & tim < s_t + dur)
    

    the output:

      ID StartTime Duration Outcome OBS     Time        s_t dur        tim
    1  1  10:12:06 00:00:10  Normal   1 10:12:10 1321665126  10 1321665130
    2  1  10:12:06 00:00:10  Normal   2 10:12:15 1321665126  10 1321665135
    7  2  10:12:30 00:00:30   Weird   3 10:12:45 1321665150  30 1321665165
    

    OBS #2 looks to be in the range. does it make sense?

提交回复
热议问题