R中的会话持续时间

Session duration in R

当数据如下时,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"

感谢

您可以尝试以下方法:

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

希望对您有所帮助!

但在此之前,我们应该将日期转换为时间戳 持续时间的单位不一样(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)) 

但在此之前,我们应该将日期转换为时间戳 持续时间的单位不一样(sessionId = 1 以秒为单位,另一个以天为单位)

这会很有帮助:

 dur <- df %>% mutate(Date = as.numeric(as.POSIXct(Date))) %>%
        group_by(SessionId) %>%
        summarize(duration = max(Date)-min(Date))