基本上我想按天对我的值进行分组,我想计算每天每个站点(ACO、AJM 等)的平均值,忽略空值。
这是我的数据框的头部:
D
其中“FECHA”是一天,“HORA”是每一天的小时。
我目前正在尝试这样做:
FECHA HORA ACO AJM ATI BJU
01/01/2019 1 -99.0 -99.0 -99.0 -99.0
01/01/2019 2 -99.0 -99.0 -99.0 -99.0
01/01/2019 3 -99.0 -99.0 -99.0 -99.0
01/01/2019 4 1.5 0.1 0.9 1.0
01/01/2019 5 1.2 0.1 0.6 1.3
01/01/2019 6 1.0 0.1 1.0 1.0
但 RStudio 一直告诉我“无效的 'dims'”或 na.rm 不正确。
如何按天(每 24 行)对所有值进行分组并计算当天每列的平均值,而忽略空值 (-99)?
答案 0 :(得分:0)
您可以使用 across
-
library(dplyr)
mdiaria2019CO <- datos2019CO %>%
group_by(FECHA) %>%
summarise(across(ACO:BJU, ~mean(.[. != -99])))
# FECHA ACO AJM ATI BJU
# <chr> <dbl> <dbl> <dbl> <dbl>
#1 01/01/2019 1.23 0.1 0.833 1.1
.[. != -99]
将忽略由 -99.0
表示的缺失值。
答案 1 :(得分:0)
我们也可以这样
library(dplyr)
mdiaria2019CO <- aggregate(.~ FECHA, datos2019CO[-2], FUN = function(x)
mean(x[x != -99]))