R中按组月的平均温度
Posted
技术标签:
【中文标题】R中按组月的平均温度【英文标题】:Mean Temperature by group month in R 【发布时间】:2020-12-30 18:42:28 【问题描述】:我正在尝试使用以下代码计算 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
有人可以向我解释为什么会发生这种情况¿
【问题讨论】:
问题可能是na.omit()
。而是尝试使用filter(!is.na(Air.Temp.Mean))
,然后计算平均值!
【参考方案1】:
我们可以使用data.table
方法
library(data.table)
setDT(database_PE_na)[month == 7,
.(mean_temp_monthYear = mean(Air.Temp.Mean, na.rm = TRUE))]
【讨论】:
【参考方案2】:为了比较,使用==
而不是=
。
如果您想获得一个月的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))
【讨论】:
如果我想在过滤器(月==7)之外添加一个 group_by(年)? 您可以在filter
之后添加group_by(Year)
。以上是关于R中按组月的平均温度的主要内容,如果未能解决你的问题,请参考以下文章