这就是我的数据的样子。
# A tibble: 4,722,462 x 5
started_at member_casual weekday ride_length month
<dttm> <chr> <fct> <dbl> <fct>
1 2020-08-20 18:08:14 member Thursday 0.160 August
2 2020-08-27 18:46:04 casual Thursday 1.15 August
3 2020-08-26 19:44:14 casual Wednesday 2.15 August
4 2020-08-27 12:05:41 casual Thursday 0.801 August
5 2020-08-27 16:49:02 casual Thursday 0.180 August
6 2020-08-27 17:26:23 casual Thursday 0.691 August
7 2020-08-26 20:14:02 casual Wednesday 0.333 August
8 2020-08-26 21:59:50 casual Wednesday 0.212 August
9 2020-08-26 19:17:42 casual Wednesday 0.242 August
10 2020-08-27 15:13:57 casual Thursday 0.467 August
# ... with 4,722,452 more rows
我想按“工作日”和“member_casual”进行分组,然后汇总以获得一周中每一天的平均骑手数量,即“星期一”和“休闲”行:(星期一的次数& 休闲出现在数据中)/(给定时间范围内星期一的实际数量)。这是我最接近的一次。
#finding the total number of weeks in the given time frame.
weeks_ <-as.numeric(difftime(max(df2$started_at),min(df2$started_at),units="weeks"))
#assuming there are only complete weeks
df2 %>% group_by(weekday,member_casual)%>% summarise("Average Riders"=(n()/weeks_))
由于时间范围非常长,此输出并不准确,但足够准确。
weekday member_casual `Average Riders`
<fct> <chr> <dbl>
1 Monday casual 4404.
2 Monday member 6688.
3 Tuesday casual 4279.
4 Tuesday member 7289.
5 Wednesday casual 4434.
6 Wednesday member 7648.
7 Thursday casual 4447.
8 Thursday member 7285.
9 Friday casual 5807.
10 Friday member 7452.
11 Saturday casual 9366.
12 Saturday member 7612.
13 Sunday casual 7527.
14 Sunday member 6331.
最佳答案
library(dplyr)
df %>%
group_by(weekday, member_casual) %>%
count()
weekday member_casual n
<chr> <chr> <int>
1 Thursday casual 5
2 Thursday member 1
3 Wednesday casual 4
关于r - 使用 dplyr 的一周中所有天的平均乘客数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69135403/