【问题标题】:summarise(n=n()) returns "Evaluation error: This function should not be called directly." even when plyr is not loadedsummarise(n=n()) 返回“评估错误:不应直接调用此函数。”即使没有加载 plyr
【发布时间】:2019-04-24 23:54:44
【问题描述】:

我删除 plyr,加载 dplyr 并检查当前包

detach("package:plyr", unload=TRUE)
library(dplyr)
(.packages())

[1] "dplyr" "bindrcpp" "stats" "graphics" "grDevices" “实用工具”“数据集”
[8]“方法”“基础”

以下是冲突的信息:

conflicts()

[1]“过滤器”“滞后”“主体 [8] “联合”

然后我使用汇总并得到错误。这是我 6 个月前使用的相同代码,没有问题。

by_vs_am <- group_by(mtcars, vs, am)
by_vs <- summarise(by_vs_am, n = n())

summarise_impl(.data, dots) 中的错误:评估错误:这个 函数不应直接调用。

【问题讨论】:

  • 在这个 fasion 中使用它:dplyr::summarise(by_vs_am, n = n())
  • 了解更多? -> 谷歌:"masking function r"
  • 您的代码在干净的 R 会话中工作。
  • @AndreElrico dplyr::summarise 给了我与 OP 相同的错误。
  • 我现在确实测试过了。对我来说它有效。

标签: r


【解决方案1】:

尝试改用dplyr::n()。 代码应如下所示:

by_vs_am <- group_by(mtcars, vs, am)
by_vs <- summarise(by_vs_am, n = dplyr::n())

【讨论】:

    【解决方案2】:

    正如其他人所提到的,这与冲突有关。查看您加载的软件包及其依赖关系会有所帮助。对我来说是 XML 库,所以我运行 detach("package:XML", unload = TRUE) 来修复它。

    【讨论】:

      猜你喜欢
      • 2017-01-11
      • 2014-05-13
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多