gpt4 book ai didi

r - dplyr 的每小时总和,空时为零

转载 作者:行者123 更新时间:2023-12-04 12:07:16 26 4
gpt4 key购买 nike

我有一个类似于下面“my_data”格式的数据集,其中每一行是一个事件的单个计数。我想获得每小时发生多少事件的摘要。我希望每个小时都没有事件,其“hourly_total”值包含一个 0。

如图所示,我可以使用 dplyr 实现这一点,但空时数被丢弃而不是被设置为 0。

谢谢!

set.seed(123)
library(dplyr)
library(lubridate)

latemail <- function(N, st="2012/01/01", et="2012/1/31") {
st <- as.POSIXct(as.Date(st))
et <- as.POSIXct(as.Date(et))
dt <- as.numeric(difftime(et,st,unit="sec"))
ev <- sort(runif(N, 0, dt))
rt <- st + ev
}

my_data <- data_frame( fake_times = latemail(25),
count = 1)

my_data %>% group_by( rounded_hour = floor_date(fake_times, unit = "hour")) %>%
summarise( hourly_total = sum(count))

最佳答案

将您的计数分配给一个对象

counts <- my_data %>% group_by( rounded_hour = floor_date(fake_times, unit = "hour")) %>%
summarise( hourly_total = sum(count))

创建一个包含所有必要时间的数据框
complete_data = data.frame(hour = seq(floor_date(min(my_data$fake_times), unit = "hour"),
floor_date(max(my_data$fake_times), unit = "hour"),
by = "hour"))

加入它并填写 NA s。
complete_data %>% group_by( rounded_hour = floor_date(hour, unit = "hour")) %>%
left_join(counts) %>%
mutate(hourly_total = ifelse(is.na(hourly_total), 0, hourly_total))

关于r - dplyr 的每小时总和,空时为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237830/

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