我刚刚开始尝试使用dplyr的链式操作符。
以简单的例子为例:
group_by(mtcars, cyl) %>%
summarise(mean(disp), mean(hp))
我得到了结果:
# mean(disp) mean(hp)
#1 230.7219 146.6875
由于某些原因,dplyr没有分组,只是汇总整个向量。我错过了什么?
开始一个新的会话,这就是我得到的:
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
编辑
不要加载plyr
(在dplyr
之后或者根本不加载)。问题在于它使用了plyr::summarise
而不是dplyr::summarise
:
mtcars %>%
group_by(cyl) %>%
plyr::summarise(mean(disp), mean(hp))
## mean(disp) mean(hp)
## 1 230.7219 146.6875
编辑2
您也可以明确地说明从哪个软件包中提取summarise
,如下所示:
mtcars %>%
group_by(cyl) %>%
dplyr::summarise(mean(disp), mean(hp))
plyr
中的ldply
函数,是否有类似的函数可以避免加载plyr
? - ismailsunniplyr
,但它不知何故正在使用plyr
。 所以,改为使用dplyr :: summarize
对我有用。 - damjad