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