我的数据很长,是一系列时间戳,其描述符为|。潜在的开始时间有多行(具有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
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
我欢迎任何见解,并且目前正在寻求一些R指导。谢谢。
编辑:我最初将变量格式化为POSIXct时遇到了一些问题。在@ Phann的指导下,我能够使用datetime2 <- as.POSIXct(as.character(data$datetime), format="%Y-%m-%d %H:%M:%S")