我认为 dplyr 很棒。不过,我最近更新了该软件包,似乎 summarise 不再按组对我进行聚合。类似于以下代码,用于在升级之前按组进行汇总:
iris_tdt <- tbl_dt(iris)
iris_tdt %.% group_by(Species) %.% summarise(avg_petal_width = mean(Petal.Width))
avg_petal_width
1 1.199333
这用于输出包含物种和 avg_petal_width 的表。现在,“物种”列似乎已被删除,并且 avg_petal_width 已聚合为单个值。 group_by 似乎正在工作,所以我猜测这是 summarise 的问题。
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)"
最佳答案
您可能还有另一个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
,
或为所有受影响的函数添加前缀(summarise
、mutate
等)
及其命名空间(dplyr::summarise
等)
关于r - 总结不再分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328323/