前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言dplyr包分组求均值遇到的一个问题及解决办法

R语言dplyr包分组求均值遇到的一个问题及解决办法

作者头像
用户7010445
发布2020-12-18 17:20:05
3.7K0
发布2020-12-18 17:20:05
举报
文章被收录于专栏:小明的数据分析笔记本

R语言里的dplyr这个包group_by()函数加上summarise()函数分组计算方差均值等非常好用。比如一组数据

代码语言:javascript
复制
df<-data.frame(first=c("A","A","B","B"),
               second=c(1,2,3,4))
df
### 以下是df的返回结果,不需要输入
 first second
1     A      1
2     A      2
3     B      3
4     B      4

我想分别结算两个A和两个B的平均值,用以下代码可以很方便的实现

代码语言:javascript
复制
library(dplyr)
df%>%
  group_by(first)%>%
  summarise(y=mean(second)) -> df1

# 结果保存在df1中,输入df1并运行返回以下内容
 df1
# A tibble: 2 x 2
  first     y
  <chr> <dbl>
1 A       1.5
2 B       3.5

以上是正常情况

然而我最近再用这个方法的时候一直出现问题,返回的结果是直接计算1234的均值,并不会分组计算。这个问题困扰了我一周的时间,昨天在公众号发推文提到了这个问题,与人留言给出了解决方案:另一个包plyr相冲突导致的问题。可以把plyr detach 掉

我也没有加载plyr这个包呀,那很有可能是加载其他包的时候因为依赖plyr这个包同时也把它加载了。

不在使用已经加载的包可以用detach()函数,写法是

代码语言:javascript
复制
detach('package:plyr')

运行这条命令的时候报错Error: package ‘plyr’ is required by ‘Rmisc’ so will not be detached

我说呢,Rmisc这个包里有一个计算置信区间的函数,之前分组计算均值就没有遇到过这个问题,这次我是想分组计算置信区间,所以加载了Rmisc这个包。那就一次关闭已经加载的包

代码语言:javascript
复制
detach('package:Rmisc')
detach('package:plyr')

这样再分组计算就没有问题了

非常感谢以下两位的留言提供解决办法,月底还会组织一次抽奖活动,送橙子或者送书,这两位提供解决办法的朋友到时可以直接获得奖品。记得关注推文哈!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档