gpt4 book ai didi

r - 如何按时间间隔和列值对 R 数据框进行分组?

转载 作者:行者123 更新时间:2023-12-01 08:48:49 26 4
gpt4 key购买 nike

我有一个数据集,它是特定设施发生事件的时间列表:

> head(facility_events);
facility_id event_time
1 20248 2018-01-01 00:00:01
2 12445 2018-01-01 00:00:04
3 20248 2018-01-01 00:00:08
4 17567 2018-01-01 00:00:47
5 17567 2018-01-01 00:03:50
6 10459 2018-01-01 00:04:01

我想通过按设施对数据进行分组并将事件分组为 3 分钟间隔来生成具有汇总总和的数据帧。输出看起来像这样:
count facility interval
2 20248 0
1 12445 0
1 17567 0
1 17567 1
1 10459 1

你如何在 R 中实现这一点?

最佳答案

您可以将 tidyverselubridate 一起使用:

df <- data.frame(facility_id = c(20248, 12445, 20248, 17567, 17567, 10459),
event_time = as.POSIXct(c("2018-01-01 00:00:01", "2018-01-01 00:00:04", "2018-01-01 00:00:08", "2018-01-01 00:00:47", "2018-01-01 00:03:50", "2018-01-01 00:04:01")))

library(tidyverse)

df %>%
mutate(interval = lubridate::minute(event_time) %/% 3) %>%
group_by(facility_id, interval) %>%
summarise(count = n())

# A tibble: 5 x 3
# Groups: facility_id [?]
facility_id interval count
<dbl> <int> <int>
1 10459 1 1
2 12445 0 1
3 17567 0 1
4 17567 1 1
5 20248 0 2

关于r - 如何按时间间隔和列值对 R 数据框进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48251522/

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