R:将长时间戳转换为宽时间段

时间:2017-12-12 04:00:01

标签: r

我的数据很长,是一系列时间戳,其描述符为|。潜在的开始时间有多行(具有start1,start2,start3的行),但结束时间只有一行(带有结束的行)。我的目标是在转换结束时获得持续时间(参见#2中的描述)。我的日期格式为POSIXct。

数据:

ID | events | datetime 
ID_1 | start1 | 2015-10-02 19:46:00 EDT
ID_1 | start2 | 2015-10-02 19:46:00 EDT
ID_1 | end | 2015-10-02 22:46:00 EDT
ID_2 | start1 | 2015-10-02 19:46:00 EDT
ID_2 | start2 | 2015-10-02 19:46:00 EDT
ID_2 | start3 | 2015-10-02 19:46:00 EDT
ID_2 | start4 | 2015-10-02 19:46:00 EDT
ID_2 | end | 2015-10-02 22:46:00 EDT

所需的最终状态:

ID | event | start datetime | end datetime | duration | datetime  
ID_1 | start2-end | 2015-10-02 19:46:00 EDT | 2015-10-02 22:46:00 EDT | 180 minutes | 2015-10-02
ID_2 | start4-end | 2015-10-02 19:46:00 EDT | 2015-10-02 22:46:00 EDT | 180 minutes | 2015-10-02
  1. 我想将其转换为宽数据集。我不知道该怎么做。如果有一种方法可以跳到#3并在此时创建持续时间,我会这样做。
  2. ID | event | start datetime | end datetime | duration | datetime ID_1 | start2-end | 2015-10-02 19:46:00 EDT | 2015-10-02 22:46:00 EDT | 180 minutes | 2015-10-02 ID_2 | start4-end | 2015-10-02 19:46:00 EDT | 2015-10-02 22:46:00 EDT | 180 minutes | 2015-10-02

    1. 最终,我希望使用lubridate包并使用它来计算持续时间(可能以分钟/秒为单位)。
    2. 我欢迎任何见解,并且目前正在寻求一些R指导。谢谢。

      编辑:我最初将变量格式化为POSIXct时遇到了一些问题。在@ Phann的指导下,我能够使用datetime2 <- as.POSIXct(as.character(data$datetime), format="%Y-%m-%d %H:%M:%S")

      执行此操作

0 个答案:

没有答案