R 分组依据()是';正如我所预料的那样
我尝试使用R 分组依据()是';正如我所预料的那样,r,dplyr,tidyverse,R,Dplyr,Tidyverse,我尝试使用bomrang软件包和tidyverse来总结一些降雨数据。我尝试使用dplyr::group_by(year)然后使用summary和mean来计算年平均降雨量。但我没有得到不同的年平均值,而是在整个数据框架中得到相同的平均值 #加载库 图书馆(博朗) 图书馆(tidyverse) #获取数据 珀斯% 选择(站号、年份:日、降雨量)%>% 组别(年份)%>% 总结(年平均值=平均值(降雨量,na.rm=真实值)) 我希望26年数据中的每一年都有一个年平均值,因此,例如,1993年年
bomrang
软件包和tidyverse来总结一些降雨数据。
我尝试使用dplyr::group_by(year)
然后使用summary
和mean
来计算年平均降雨量。但我没有得到不同的年平均值,而是在整个数据框架中得到相同的平均值
#加载库
图书馆(博朗)
图书馆(tidyverse)
#获取数据
珀斯%
选择(站号、年份:日、降雨量)%>%
组别(年份)%>%
总结(年平均值=平均值(降雨量,na.rm=真实值))
我希望26年数据中的每一年都有一个年平均值,因此,例如,1993年年平均值应为2.032013年,1994年应为2.026849等
相反,我只得到一个值2.002883。我曾尝试每年使用突变和作为.factor
,看看这是否改变了结果,但没有改变。因此,看看分组是否有预期效果总是有用的。在你的管道里,你可以走了
perth %>%
select(station_number, year:day, rainfall) %>%
dplyr::group_by(year) %>%
class()
结果是
"bomrang_tbl" "data.frame"
所以它不是一个分组的TIBLE,这通常是通过dplyr::group_by
实现的。并不是说调用的groupby
不是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))
你在正确的轨道上。有时包裹会发生冲突,奇怪的事情也会发生。始终检查分组状态,如有必要,请使用取消分组
您好,您能在您的问题中发布dput(head(perth))
的结果吗。这样,我们现在可以看到您的数据是什么样子的。它看起来像一个带有“bomrang\u tbl
”类的data.table
。无论如何,perth%%>%as.data.frame()%%>%…
对我来说很好。有趣的是,小插曲特别提到“一些返回的对象被归类为bomrang_tbl,它允许分派dplyr方法,例如mutate、filter、select、arrange、slice、rename和group_by,同时保留标题信息”因此,我们的意图是它会起作用。您可能希望将其记录为问题,以供参考。我今天使用bomrang
时发现了一个单独但相关的问题,因此我在他们的GitHub上记录了两个问题