dplyr使用汇总时仅返回一行 [英] dplyr only returning one row when using summarize

查看:69
本文介绍了dplyr使用汇总时仅返回一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是想尝试一下dplyr的连锁经营者。

I'm just getting around to giving dplyr's chain operator a try.

使用简单示例:

group_by(mtcars, cyl) %>%
summarise(mean(disp), mean(hp))

I得到结果:

  # mean(disp) mean(hp)
  #1   230.7219 146.6875

出于某些原因,dplyr并未分组,只是汇总了整个向量。我缺少什么?

For some reason dplyr isn't grouping, just summarizing the entire vector. What am I missing?

推荐答案

开始一个新的会话,这是我得到的:

Start a fresh session this is what I get:

library(dplyr)

mtcars %>%
    group_by(cyl) %>%
    summarise(mean(disp), mean(hp))

##   cyl mean(disp)  mean(hp)
## 1   4   105.1364  82.63636
## 2   6   183.3143 122.28571
## 3   8   353.1000 209.21429

编辑

Don' t每秒加载 plyr (仅次于 dplyr )。问题在于它使用的是 plyr :: summarise 而不是 dplyr :: summarise

Don't load plyr second (after dplyr) or at all. The problem is that it's using plyr::summarise not dplyr::summarise:

mtcars %>%
    group_by(cyl) %>%
    plyr::summarise(mean(disp), mean(hp))

##   mean(disp) mean(hp)
## 1   230.7219 146.6875

编辑2

您也可以明确地说出要从哪个包中提取 sumamrise 的软件包,如下所示:

You could also just be explicit and say which package to pull sumamrise from as seen below:

mtcars %>%
    group_by(cyl) %>%
    dplyr::summarise(mean(disp), mean(hp))

这篇关于dplyr使用汇总时仅返回一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆