会话持续时间在R

时间:2018-04-18 11:00:31

标签: r statistics data-science

如果数据类似,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

3 个答案:

答案 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']