我使用"count"来总结数据帧的列.专栏(dataset$Nationality)由不止一次出现的国籍组成(例如瑞士,德国,法国,瑞士等).它工作正常,直到它今天突然产生一个错误信息:
UseMethod("groups")中的错误:对于应用于"character"类对象的"groups"没有适用的方法.
我重新安装了dplyr,但它仍然无法正常工作.
例如:
dataset$Nationality consists of c("Swiss", "French","German","Swiss")
Run Code Online (Sandbox Code Playgroud)
然后
count(dataset$Nationality)
Run Code Online (Sandbox Code Playgroud)
会给出类似的东西
Swiss,2, French, 1, German,1
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,我能做些什么才能让它再次发挥作用?
非常感谢!
Ank*_*pta 13
希望这能回答你的问题.
如果您使用"plyr"库 library(plyr)
正确的语法: count(dataset$Nationality)
如果您使用的是"dplyr"库 library(dplyr)
正确的语法: count(dataset, Nationality)
如果您使用的是Both,则必须使用最后添加的库的语法.
添加什么Dzej建议:
我们也可以使用特定的库.
直接使用dplyr的语法: dplyr::count(dataset, Nationality)
直接使用plyr的语法: plyr::count(dataset$Nationality)
count()如果您在 a 内部误用group_by(...) %>% summarise(...),您将导致此问题中描述的错误。
例如,此代码将产生错误:
tibble %>%
group_by(state) %>%
summarize(number_sightings = count(`duration (seconds)`))
Run Code Online (Sandbox Code Playgroud)
count()(indplyr::count(..., ..., [...])和plyr::count(...)) 产生“值计数”;向量中的值和不同值的频率列表。(与显示向量长度的单个数字相比)
在这个我的中,我想要n()“摘要函数”而不是(文档count()中的更多信息)summarise
tibble %>%
group_by(state) %>%
summarize(number_sightings = n())
Run Code Online (Sandbox Code Playgroud)
小智 6
根据 Ankit Gupta 的回答:
如果您同时使用 plyr 和 dplyr,您可以通过提供 library_name::function_name(params) 来使用特定库的函数,例如:
plyr::count(dataset$nationality)
Run Code Online (Sandbox Code Playgroud)
写出我的感觉是一个更完整的答案,结合了 Ankit 和 aosmith 所说的并对其进行了补充。
count()dplyr 包中的 可以从两个不同的上下文中调用。第一个是 aosmith 和 Ankit 所建议的,它count()以数据框作为第一个参数调用,然后是要计数的变量,用逗号分隔。
count(df, var1)
Run Code Online (Sandbox Code Playgroud)
或者
count(df, var1, var2)
Run Code Online (Sandbox Code Playgroud)
第二种方法是使用 R 管道 ( %>%) 将数据帧传递到count().
df %>% count(var1)
Run Code Online (Sandbox Code Playgroud)
或者
df %>% count(var1, var2)
Run Code Online (Sandbox Code Playgroud)
未能在任一上下文中提供数据框将导致问题中出现“无适用方法”错误。
| 归档时间: |
|
| 查看次数: |
21645 次 |
| 最近记录: |