我使用“count”来汇总数据框的列。专栏(dataset$Nationality
)由不止一次出现的国籍组成(例如瑞士,德国,法国,瑞士等)。它工作正常,直到它今天突然产生错误信息:
UseMethod(“groups”)出错:“群组”没有适用的方法 应用于“字符”类的对象。
我重新安装了dplyr,但它仍然无效。
例如:
dataset$Nationality consists of c("Swiss", "French","German","Swiss")
然后
count(dataset$Nationality)
会给出像
这样的东西Swiss,2, French, 1, German,1
有人可以告诉我我能做些什么才能让它再次发挥作用吗?
非常感谢!
答案 0 :(得分:10)
希望这能回答你的问题。
如果您正在使用" plyr"图书馆library(plyr)
更正语法:count(dataset$Nationality)
如果您正在使用" dplyr"图书馆library(dplyr)
更正语法:count(dataset, Nationality)
如果您使用的是Both,则必须使用最后添加的库的语法。
添加Dzej建议:
我们也可以使用特定的库。
直接使用dplyr的语法:dplyr::count(dataset, Nationality)
直接使用plyr的语法:plyr::count(dataset$Nationality)
答案 1 :(得分:2)
写下我的感觉是一个更完整的答案,它结合了Ankit和aosmith所说的并添加了它。
dplyr包中的 count()
可以从两个不同的上下文中调用。第一个是aosmith和Ankit建议的内容,它以数据框作为第一个参数调用count()
,后跟要计数的变量,用逗号分隔。
count(df, var1)
或
count(df, var1, var2)
第二种方法是使用R管道(%>%
)将数据框传递到count()
。
df %>% count(var1)
或
df %>% count(var1, var2)
未能在任何一种情况下提供数据框将导致“不适用的方法”#39;在问题中看到的错误。
答案 2 :(得分:1)
根据Ankit Gupta的回答:
如果同时使用plyr和dplyr,则可以通过提供library_name :: function_name(params)来使用特定库的功能,例如:
plyr::count(dataset$nationality)
答案 3 :(得分:0)
如果您在count()
内误用group_by(...) %>% summarise(...)
,则会出现此错误
例如,此代码将产生错误:
ufo_tibble %>%
group_by(state) %>%
summarize(number_sightings = count(`duration (seconds)`))
count()
(在dplyr::count(..., ..., [...])
和plyr::count(...)
中)产生“值计数”;向量中值的列表以及不同值的频率。 ( vs 单个数字表示向量的长度)
在这种情况下,我想使用n()
“摘要功能”(summarise
documentation中的更多信息)
ufo_tibble %>%
group_by(state) %>%
summarize(number_sightings = n())