【问题标题】:R - Error in UseMethod("groups") : no applicable method for 'groups' applied to an object of class "character"R - UseMethod(“groups”)中的错误:没有适用于“groups”的适用方法应用于“character”类的对象
【发布时间】:2017-08-31 16:26:44
【问题描述】:

我使用“count”来汇总数据框的列。列 (dataset$Nationality) 包含可以多次出现的国籍(例如瑞士、德国、法国、瑞士等)。它工作正常,直到今天突然产生错误消息:

UseMethod("groups") 中的错误:没有适用于“groups”的方法 应用于“字符”类的对象。

我重新安装了 dplyr,但还是不行。

例如:

dataset$Nationality consists of c("Swiss", "French","German","Swiss")

然后

count(dataset$Nationality) 

会给出类似的东西

Swiss,2, French, 1, German,1

谁能告诉我我能做些什么来让它再次工作?

非常感谢!

【问题讨论】:

  • count 的代码不应该是count(dataset, Nationality)吗?
  • 有效!谢谢。奇怪的是在它接受数据集$Nationality 格式之前。
  • @thixio 如果您认为我的回答有用,请支持并接受我的回答,以便其他人知道这是正确的答案,谢谢!

标签: r count dplyr


【解决方案1】:

希望这能回答您的问题。

如果您使用“plyr”库library(plyr)

正确的语法:count(dataset$Nationality)

如果您使用“dplyr”库library(dplyr)

正确的语法:count(dataset, Nationality)

如果您同时使用 Both,则必须使用上次添加的库的语法。

添加 Dzej 的建议:

我们也可以使用特定的库。

直接使用 dplyr 的语法:dplyr::count(dataset, Nationality)

直接使用 plyr 的语法:plyr::count(dataset$Nationality)

【讨论】:

    【解决方案2】:

    根据 Ankit Gupta 的回答:

    如果您同时使用 plyr 和 dplyr,您可以通过提供 library_name::function_name(params) 来使用特定库的函数,例如:

    plyr::count(dataset$nationality)
    

    【讨论】:

      【解决方案3】:

      写下我的感受是一个更完整的答案,结合了Ankit和aosmith所说的并补充了它。

      dplyr 包中的count() 可以从两个不同的上下文中调用。第一个是 aosmith 和 Ankit 建议的,它调用count(),将数据框作为第一个参数,后跟要计数的变量,用逗号分隔。

      count(df, var1)
      

      count(df, var1, var2)
      

      第二种方法是使用 R 管道 (%>%) 将数据帧传递到 count()

      df %>% count(var1)
      

      df %>% count(var1, var2)
      

      未能在任一上下文中提供数据框将导致问题中出现“无适用方法”错误。

      【讨论】:

        【解决方案4】:

        如果您在group_by(...) %>% summarise(...) 中误用count(),您将收到此错误

        例如,这段代码会产生错误:

        tibble %>% 
          group_by(state) %>% 
          summarize(number_sightings = count(`duration (seconds)`))
        

        count()(在dplyr::count(..., ..., [...])plyr::count(...) 中)产生一个“值计数”;值列表和向量中不同值的频率。 (vs 表示向量长度的单个数字)

        在这种情况下,我想要n()“汇总函数”(更多信息请参见summarise documentation

        tibble %>% 
          group_by(state) %>% 
          summarize(number_sightings = n())
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-12
          • 2022-12-15
          • 2023-01-22
          • 2020-12-05
          • 2021-10-09
          • 1970-01-01
          • 2021-07-21
          相关资源
          最近更新 更多