计算 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
抱歉,我知道已经有很多 '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