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))]
我正在尝试使用以下代码计算 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))]