根据 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))
我有一个包含 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))