总结不再分组

我认为dplyr太棒了 . 但是我最近更新了这个软件包,似乎总结不再是按组汇总的 . 类似于以下用于在升级之前按组汇总的代码:

iris_tdt <- tbl_dt(iris)
iris_tdt %.% group_by(Species) %.% summarise(avg_petal_width = mean(Petal.Width))

  avg_petal_width
1        1.199333

这用于输出具有Species和avg_petal_width的表 . 现在,物种列似乎被删除,avg_petal_width聚合为单个值 . group_by似乎正在工作,所以我猜这是一个总结的问题 .

grp <- group_by(iris_tdt,Species)
groups(grp)

[[1]]
Species

即使是Vignette中的示例也无法正常工作 .

hflights_df <- tbl_df(hflights)
planes <- group_by(hflights_df, TailNum)
delay <- summarise(planes,
  dist = mean(Distance, na.rm = TRUE),
  delay = mean(ArrDelay, na.rm = TRUE))

delay
      dist    delay
1 787.7832 7.094334

任何建议将不胜感激 .

packageDescription("dplyr")$Version #--> 0.1.2
R.version.string #--> "R version 3.0.2 (2013-09-25)"

回答(1)

3 years ago

您可能有另一个 summarise 函数,可能来自 plyr 包 .

# Works
library(dplyr)
iris_tdt <- tbl_dt(iris)
iris_tdt %.% 
  group_by(Species) %.% 
  summarise(avg_petal_width = mean(Petal.Width))

# No longer works...
library(plyr)
iris_tdt <- tbl_dt(iris)
iris_tdt %.% 
  group_by(Species) %.% 
  summarise(avg_petal_width = mean(Petal.Width))

如果你真的需要两个软件包,你可以尝试加载 dplyr last,或者将所有受影响的函数( summarisemutate 等)作为其命名空间( dplyr::summarise 等)的前缀