gpt4 book ai didi

r - 在 Web 访问 session 中查找请求的页面对的时间差

转载 作者:行者123 更新时间:2023-12-02 01:06:39 25 4
gpt4 key购买 nike

我有数据框的这个子集

lf = structure(list(session_id = c(48L, 48L, 48L, 48L, 48L, 48L, 54L, 
54L, 54L, 54L, 54L, 54L, 72L, 72L, 72L, 72L, 72L, 74L, 74L, 74L,
74L, 74L, 78L, 78L, 78L, 78L, 78L, 90L, 90L, 90L), datetime = structure(c(1457050110,
1457050111, 1457050112, 1457050114, 1457050117, 1457050118, 1457052045,
1457052048, 1457052050, 1457052051, 1457052052, 1457052054, 1457057067,
1457057067, 1457057067, 1457057070, 1457057071, 1457058143, 1457058143,
1457058144, 1457058149, 1457058150, 1457059193, 1457059193, 1457059195,
1457059198, 1457059199, 1457063485, 1457063486, 1457063486), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), request = c(7, 7, 14, 20, 9, 4, 9,
1, 12, 20, 6, 12, 4, 15, 8, 8, 12, 10, 6, 6, 13, 1, 5, 6, 20,
1, 8, 3, 6, 13)), .Names = c("session_id", "datetime", "request"
), row.names = c(NA, -30L), class = c("grouped_df", "tbl_df",
"tbl", "data.frame"))

现在我想编写一个函数,它将一对请求 (request1,request2) 作为输入并在我上传所需的输出图片时产生输出

我已经使用了这段代码,但一直在寻找时间差异 w.r.t 位置索引:-

lf1 = lf %>% group_by(session_id) %>% do(positions = match(c(1,6),.$request),session_duration = max(.$datetime)-min(.$datetime)) 

如你所见,我在上面的代码中使用了请求对 (1,6) 的实例,但想编写一个函数来完成这项工作

期望的输出:- enter image description here

最佳答案

在给定的场景中,您不必担心显式位置。仅考虑 (a) session 中的范围和 (b) 是否在 session 中满足两个边界。

另外,注意不小心被分组的小标题。我尝试总是在管道/链结束之前 ungroup() 它们。

lf <- lf %>% 
dplyr::ungroup()

lf %>%
dplyr::filter(request %in% c(1, 6)) %>%
dplyr::group_by(session_id) %>%
dplyr::summarize(
has_both_boundaries = (any(request==1) & any(request==6)),
session_duration = as.integer(difftime(max(datetime), min(datetime), units="secs"))
) %>%
dplyr::ungroup() %>%
dplyr::filter(has_both_boundaries) %>%
dplyr::select(-has_both_boundaries) %>%
dplyr::right_join(
lf %>%
dplyr::distinct(session_id),
by = "session_id"
)

产生:

# A tibble: 6 x 2
session_id session_duration
<int> <int>
1 48 NA
2 54 4
3 72 NA
4 74 7
5 78 5
6 90 NA

第 48、72 和 90 个 session 是否需要这些空行?如果不是,则省略结束 right_join() 子句。

关于r - 在 Web 访问 session 中查找请求的页面对的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47234526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com