这是示例数据集。
StartTime EndTime User
5/18/2023 2:40 5/18/2023 4:44 FJNDS
5/18/2023 4:04 5/18/2023 5:07 DFDSFDS
5/18/2023 5:07 5/18/2023 5:13 CXXZVC
5/18/2023 1:40 5/18/2023 5:41 SAFDSFD
5/18/2023 1:40 5/18/2023 5:41 VCXZVXC
5/18/2023 4:31 5/19/2023 5:47 VDSFSDFD
每行对应一个会话。我想知道是否有任何一个会议福尔斯在3:00到6:00之间。如果任何会话/行福尔斯在该时间段之间,则该时间段内的分钟数需要在列中单独注明。
请注意,在最后一行(user id == VDSFSDFD)中,会话在两天之间。因此,在这种情况下,需要记录两天的3:00到6:00时间段之间的总分钟数。
可以在R中使用Lubridate吗?其他的R函数对我来说也很好。
1条答案
按热度按时间xt0899hw1#
使用
as.POSIXct
函数将StartTime和EndTime列转换为适当的日期时间格式:创建一个名为MinutesInRange的新列,并为所有行分配值0:
处理会话跨越2天的情况:
通过使用
ifelse
函数检查每个会话是否福尔斯3:00到6:00的时间段内来处理其余情况。如果是,则计算该时间段内的分钟数,并将其分配给MinutesInRange列:这就是结果: