如果数据类似,R中是否有任何方法可以计算每个会话的持续时间:
actionId;SessionId;Date
1;1;"2018-02-02 08:10:00"
2;1;"2018-02-02 08:30:00"
3;1;"2018-02-02 09:01:00"
4;2;"2018-03-01 09:01:00"
5;2;"2018-05-10 09:01:00"
THX
答案 0 :(得分:0)
您可以尝试以下方法:
df = read.table(text='actionId;SessionId;Date
1;1;"2018-02-02 08:10:00"
2;1;"2018-02-02 08:30:00"
3;1;"2018-02-02 09:01:00"
4;2;"2018-03-01 09:01:00"
5;2;"2018-05-10 09:01:00"',sep=';',header=T,stringsAsFactors=F)
library(dplyr)
df = df %>% mutate(Date = as.POSIXct(df$Date)) %>%
group_by(SessionId) %>%
summarize(duration = max(Date)-min(Date))
输出:
# A tibble: 2 x 2
SessionId duration
<int> <time>
1 1 51
2 2 69.9583333333333
希望这有帮助!
答案 1 :(得分:0)
但在此之前,我们应该将日期转换为时间戳 持续时间的单位不相同(对于sessionId = 1秒(秒)和其他一天(
)这会有所帮助:
df = read.table(text='actionId;SessionId;Date
1;1;"2018-02-02 08:10:00"
2;1;"2018-02-02 08:30:00"
3;1;"2018-02-02 09:01:00"
4;2;"2018-03-01 09:01:00"
5;2;"2018-05-10 09:01:00"',sep=';',header=T,stringsAsFactors=F)
df$Date <- as.numeric(as.POSIXct(df$Date))
library(dplyr)
dur <- df %>% mutate(Date = df$Date) %>%
group_by(SessionId) %>%
summarize(duration = max(Date)-min(Date))
答案 2 :(得分:0)
但在此之前,我们应该将日期转换为时间戳 持续时间的单位不相同(对于sessionId = 1秒(秒)和其他一天(
)这会有所帮助:
cleaned_data['email_confirm']