我正在尝试使用bomrang
包来总结一些降雨数据,并且我尝试过使用tidyverse.
然后使用dplyr::group_by(year)
和summarise
来总结一些降雨数据计算年平均降雨量。但是,我没有获得不同的年度平均值,而是在整个数据框架中获得了相同的平均值。
mean
我希望数据的26年中的每一年都有一个# load the libraries
library(bomrang)
library(tidyverse)
# get the data
perth <- get_historical(009225, "rain")
# group by year and calculate average rainfall per year
perth %>%
select(station_number, year:day, rainfall) %>%
group_by(year) %>%
summarise(yearly_avg = mean(rainfall, na.rm = TRUE))
值,例如1993 yearly_avg
应该是2.032013,1994应该是2.026849,等等。
相反,我只得到一个值2.002883。我曾尝试在一年中使用yearly_avg
和mutate
来查看结果是否有所改变,但并没有改变。
答案 0 :(得分:0)
因此,查看perth %>%
select(station_number, year:day, rainfall) %>%
dplyr::group_by(year) %>%
class()
是否具有预期的效果总是有用的。在管道中,您可以
"bomrang_tbl" "data.frame"
结果是
dplyr::group_by
所以它不是分组的小标题,通常是通过group_by
实现的。并不是说调用的dplyr
不是bomrang
函数。因此,我对这个tidyverse
软件包(澳大利亚政府气象局)不太了解,但似乎创建了自己的类,然后该类覆盖了perth %>%
select(station_number, year:day, rainfall) %>%
as_tibble() %>%
group_by(year) %>%
class()
分组。
所以你踢那堂课:
"grouped_df" "tbl_df" "tbl" "data.frame"
然后您获得
perth %>%
select(station_number, year:day, rainfall) %>%
as_tibble() %>%
group_by(year) %>%
summarise(yearly_avg = mean(rainfall, na.rm = TRUE))
因此最终,以下各项将得出逐年平均值:
ungroup
您在正确的轨道上。有时,程序包发生冲突并发生奇怪的事情。始终检查分组状态,必要时使用{{1}}。