计算 plyr 不工作,returns "wrong result size (3), expected 8 or 1"

Count in plyr not working, returns "wrong result size (3), expected 8 or 1"

抱歉,我知道已经有很多 'count' 个问题 - 我正在尝试 return 数据框唯一行的出现频率。我在 plyr 包中发现了很多建议 'count' 的解决方案,但我找不到任何关于此错误的信息。我正在尝试重现另一个问题中给出的示例:

> df = data.frame(x1=c(0,1,1,1,2,3,3,3),
            x2=c(0,1,1,3,2,3,3,2),
            x3=c(0,1,1,1,2,3,3,2))

> count(df, vars = c("x1", "x2", "x3"))

但这 return 出现以下错误:

Error: wrong result size (3), expected 8 or 1

我用自己的数据得到了同样的结果。我还尝试了一个不同的例子:

> bevs <- data.frame(cbind(name = c("Bill", "Llib"), drink = c("coffee", "tea", "cocoa", "water"), cost = seq(1:8)))
> bevs$cost <- as.integer(bevs$cost)
> bevs

name  drink cost
1 Bill coffee    1
2 Llib    tea    2
3 Bill  cocoa    3
4 Llib  water    4
5 Bill coffee    5
6 Llib    tea    6
7 Bill  cocoa    7
8 Llib  water    8

> count(bevs, "name")

这只是 return 行数,而不是每个名称的唯一行数。

Source: local data frame [1 x 2]

"name"     n
(chr) (int)
1   name     8 

我正在完全复制示例代码,所以我不确定发生了什么......任何帮助将不胜感激!

谢谢

我认为您在 plyr (more there) 之后加载了 dplyr。尝试以下操作:plyr::count(df, vars = c("x1", "x2", "x3"))plyr::count(bevs, "name").

使用 dplyr 的替代方法:

df %>% count_(names(.))df %>% count(x1, x2, x3)

给出:

#Source: local data frame [6 x 4]
#Groups: x1, x2 [?]
#
#     x1    x2    x3     n
#  (dbl) (dbl) (dbl) (int)
#1     0     0     0     1
#2     1     1     1     2
#3     1     3     1     1
#4     2     2     2     1
#5     3     2     2     1
#6     3     3     3     2