dplyr only returning one row when using summarize

2020-04-02 17:17发布

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

Using the simple example:

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

I get the result:

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

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

标签: r dplyr
1条回答
成全新的幸福
2楼-- · 2020-04-02 17:45

Start a fresh session this is what I get:

library(dplyr)

group_by(mtcars, 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

Edit

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

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

##   mean(disp) mean(hp)
## 1   230.7219 146.6875
查看更多
登录 后发表回答