计算r中的会话持续时间
我有一个带有会话ID的数据集,用户ID,UNIX中的TIMESTAMP(我使用lubridate进行了转换)和转换后的时间戳列。
会话 | 用户 | TS_UNIX | TIMESTAMP |
---|---|---|---|
123 | 345 | UNIX TIMESTAMP | 14-06-2022 |
17:44:32 123 | 345 | UNIX TIMESTAMP | 14-06-2022 17:44:33 |
123 | 345 | UNIX TIMESTAMP | 14-06-2022 17:44:37 |
124 | 346 | UNIX TIMESTAMP TIMESTAMP TIMESTAMP | 14-06-2022 15:50:10 |
124 | 346 | UNIX TIMESTAMP | 14-06-2022 15:51:01 |
124 | 346 | UNIX TIMESTAMP | 14-06-2022 16:30:00 |
125 | 345 | UNIX TIMESTAMP | 14-06-06-2022 23:55 23:55 :30 |
125 | 345 | UNIX时间戳 | 14-06-2022 23:58:50 |
125 | 345 | UNIX TIMESTAMP | 14-06-2022 23:59:45 |
125 | 345 | UNIX TIMESTAMP | 15-06-06-2022 |
00 | :00:00:32 125 345 | UNIX TIMESTAMP | 15-- 06-2022 00:00:59 |
我想添加另一个称为session_duration(以秒为单位)的列,这是Max_time和按Session和用户分组的MAX_TIME和MIN_TIME之间的区别。例如,对于会话#123和用户345,会话持续时间为[14-06-2022 17:44:37] - [14-06-2022 17:44:32],是5秒。
会话 | 用户 | TS_UNIX | TIMESTAMP | SESSION_DURATION(秒) |
---|---|---|---|---|
123 | 345 | UNIX TIMESTAMP | 14-06-2022 17:44:32 | 5 |
5 123 | 123 345 | UNIX TIMESTAMP | 14-06-06-2022 17:44:33 | 5 |
123 | 345 | UNIX | TIMESTAMP 14-06-2022 17:444-2022 17:4444444- :37 | 5 |
124 | 346 | UNIX时间戳 | 14-06-2022 15:50:10 | 2390 |
124 | 346 | UNIX TIMESTAMP | 14-06-2022 15:51:01 | 124 |
346 | UNIX | TIMESTAMP | 2390 | 14-06-06-06-2022 |
16:00 | 14-06-2022 | UNIX时间戳 | 14-06-2022 23:55:30 | 329 |
125 | 345 | UNIX时间戳 | 14-06-2022 23:58:50 | 329 |
125 | 345 | UNIX TIMESTAMP | 14-06-2022 23:59:45 | 329 |
125 329 125 | 345 | TIMESTAMP | UNIX 15-066-06-066-0666-06-06-06-0666-06-06-06-06-06-06-06-06-06 -2022 00:00:32 | 329 |
125 | 345 | UNIX时间戳 | 15-06-2022 00:00:59 | 329 |
这是我当前的代码的样子。时间戳已成功转换,但是我面临着会话持续时间列的问题。
library(tidyverse)
library(lubridate)
df <- df %>%
mutate(timestamp = as_datetime(ts_unix/1000)) %>%
group_by (session, user, timestamp) %>%
mutate(session_duration = difftime (max(timestamp), min(timestamp), units = "secs"))
有人可以帮我找出session_duration列吗?谢谢。
I have a dataset with a session id, user id, TimeStamp in UNIX (which I converted using lubridate), and the converted TimeStamp column.
Session | User | ts_UNIX | TimeStamp |
---|---|---|---|
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:32 |
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:33 |
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:37 |
124 | 346 | UNIX Timestamp | 14-06-2022 15:50:10 |
124 | 346 | UNIX Timestamp | 14-06-2022 15:51:01 |
124 | 346 | UNIX Timestamp | 14-06-2022 16:30:00 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:55:30 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:58:50 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:59:45 |
125 | 345 | UNIX Timestamp | 15-06-2022 00:00:32 |
125 | 345 | UNIX Timestamp | 15-06-2022 00:00:59 |
I would like to add another column called session_duration (in seconds) which is the difference between the max_time and min_time grouped by Session and User. For instance, for session # 123 and user 345, the session duration is [14-06-2022 17:44:37] - [14-06-2022 17:44:32] which is 5 seconds.
Session | User | ts_UNIX | TimeStamp | session_duration (seconds) |
---|---|---|---|---|
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:32 | 5 |
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:33 | 5 |
123 | 345 | UNIX Timestamp | 14-06-2022 17:44:37 | 5 |
124 | 346 | UNIX Timestamp | 14-06-2022 15:50:10 | 2390 |
124 | 346 | UNIX Timestamp | 14-06-2022 15:51:01 | 2390 |
124 | 346 | UNIX Timestamp | 14-06-2022 16:30:00 | 2390 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:55:30 | 329 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:58:50 | 329 |
125 | 345 | UNIX Timestamp | 14-06-2022 23:59:45 | 329 |
125 | 345 | UNIX Timestamp | 15-06-2022 00:00:32 | 329 |
125 | 345 | UNIX Timestamp | 15-06-2022 00:00:59 | 329 |
This is what my current code looks like. The timestamp has successfully converted, but I am facing an issue with the session duration column.
library(tidyverse)
library(lubridate)
df <- df %>%
mutate(timestamp = as_datetime(ts_unix/1000)) %>%
group_by (session, user, timestamp) %>%
mutate(session_duration = difftime (max(timestamp), min(timestamp), units = "secs"))
Can someone please help me figure out the session_duration column? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
样本数据
sample data