根据 r 中另一列的条件计算每小时平均值

calculating hourly average based on condition of the other column in r

我有一个包含 3 列的数据框 第一:(date_time) 每10分钟观察一次, 第二:温度, 第三:质量检查(不合格=NA)

我想计算每小时平均值,我想说的是,对于质量检查列中超过 2 na 的每个小时(在一小时内的六个观察值中),相应的平均值应该是 NA。我该怎么做我写了这段代码,但我不知道如何考虑质量列的条件:

df %>% 
   mutate(date = date(date_time), hour = hour(date_time))  %>%
   group_by(date, hour) %>%
   summarise(m = mean(temp))

我们可以使用if/else条件

library(dplyr)
library(lubridate)
df %>%
    mutate(date = as.Date(date_time), hour = hour(date_time)) %>%
    group_by(date, hour) %>%
    summarise(m = if(sum(is.na(quality)) > 2) NA_real_ 
               else mean(temp, na.rm = TRUE))