R 中各组月份的平均温度

Mean Temperature by group month in R

我正在尝试使用以下代码计算 1988 年至 2020 年间每日记录的每月平均温度:

(Temperature_year_month <- (na.omit(database_PE_na) %>% group_by(month) %>% summarise(mean_temp_monthYear = mean(Air.Temp.Mean))))

我得到了以下结果,我检查了 excel,它似乎是正确的:

# A tibble: 12 x 2
   month mean_temp_monthYear
   <dbl>               <dbl>
 1     1                11.4
 2     2                13.5
 3     3                17.2
 4     4                21.2
 5     5                26.0
 6     6                31.0
 7     7                33.3
 8     8                32.5
 9     9                29.1
10    10                22.4
11    11                15.4
12    12                10.7

然而,当我只在 7 月份(月份 =7)执行此操作时。我得到了不同的结果:

(Temperature_year_month <- (na.omit(database_PE_na) %>% group_by(month=7) %>% summarise(mean_temp_monthYear = mean(Air.Temp.Mean))))
  month mean_temp_monthYear
  <dbl>               <dbl>
1     7                22.0

有人可以向我解释为什么会发生这种情况¿

  • 为了进行比较,请使用 == 而不是 =

  • 如果您想获得一个月的 mean,请在 filter 中使用它而不是 group_by

  • mean 具有 na.rm 参数,可以将其设置为 TRUE 以忽略 NA 值而不是使用 na.omit 并删除完整的行。

使用:

library(dplyr)

Temperature_year_month <- database_PE_na %>% 
                              filter(month==7) %>% 
                              summarise(mean_temp_monthYear = mean(Air.Temp.Mean, na.rm = TRUE))

我们可以使用data.table方法

library(data.table)
setDT(database_PE_na)[month == 7, 
    .(mean_temp_monthYear = mean(Air.Temp.Mean, na.rm = TRUE))]