【问题标题】:Mutliple errors using dplyr: object not found and could not find function使用 dplyr 的多个错误:找不到对象并且找不到函数
【发布时间】:2018-06-03 16:06:51
【问题描述】:

当我尝试输入代码以获取此question 的几个答案时,我遇到了错误。代码很简单,但还是报错。

输入此代码时,我收到一条错误消息:

 library(dplyr)
 mtcars %>% 
+   group_by(cyl, gear) %>% 
+   summarise(n = n())

错误:不应直接调用此函数

另外,这也不起作用:

count(mtcars, cyl, gear)

计数错误(mtcars、cyl、gear):找不到对象“gear”

这也不行:

 mtcars %.% 
+   dplyr::group_by(cyl, gear) %.%
+   dplyr::summarise(length(gear))

mtcars %.% dplyr::group_by(cyl, gear) %.% dplyr::summarise(length(gear)) 中的错误: 找不到函数“%.%”

但是,这确实有效:

mtcars %>% group_by(cyl, gear) %>% do(data.frame(nrow=nrow(.)))

谁能解释一下出了什么问题? 谢谢!

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    单独的命令应该放在单独的行上。否则,用分号分隔它们。 接下来,%>% 是一个管道命令。它从左侧获取输出并将其通过管道传输到下一个函数的输入。它使您可以将多个命令链接在一起。因此,+ 不仅没有必要,还会增加另一个错误。

    因此, library(dplyr) mtcars %>% + group_by(cyl, gear) %>% + summarise(n = n()) 应该变成 library(dplyr); mtcars %>% group_by(cyl, gear) %>% summarise(n = n()) 或更清楚地说:

        library(dplyr)
        mtcars %>% 
          group_by(cyl, gear) %>%
            summarise(n = n())
    

    编辑 语法因包而异。我会阅读小插图以更好地了解该软件包的工作原理。

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      相关资源
      最近更新 更多