总结不再分组

时间:2014-03-11 14:13:22

标签: r dplyr

我认为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 个答案:

答案 0 :(得分:5)

您可能有另一个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, 或者为所有受影响的函数添加前缀(summarisemutate等。) 用他们的命名空间(dplyr::summarise等)