【问题标题】:SummarySE() function throwing error: Can't rename columns that don't exist. x The column `len` doesn't existSummarySE() 函数抛出错误:无法重命名不存在的列。 x 列 `len` 不存在
【发布时间】:2020-06-09 16:43:33
【问题描述】:

我的 R 版本是 3.6.0。我正在尝试使用此处定义的 summarySE() 来创建错误栏:http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/

我以前曾多次使用此功能来绘制误差线。但是,当我在更新 R 后尝试运行该函数时,出现以下错误。

 Error: Can't rename columns that don't exist.
x The column `value` doesn't exist.

我尝试在网站上运行示例代码(见下文),我得到了同样的错误。

tg <- ToothGrowth
head(tg)
tgc <- summarySE(tg, measurevar="len", groupvars=c("supp","dose"))
head(tgc)

但是,当我尝试在具有 R 版本 3.3.2 的在线编译器上运行代码时,它可以工作。好郁闷!!

【问题讨论】:

  • 因此,当我安装 summarySE() 所属的 Rmisc 包时,示例代码实际运行了。在我的代码中,我使用的是 dplyr 和 plyr。我认为一定有一些冲突,因为当我运行自己的代码时,我得到了同样的错误。
  • 冲突来自加载 plyr 和 dplyr.. 因此,如果您不加载任何一个包而只运行上面的函数,它就可以工作。在 Rmisc 包中,他们可能专门调用了该函数来防止冲突
  • 可能值得关注食谱的作者 :)
  • 我遇到了同样的问题,这令人难以置信。我明确加载了 dplyr,但 plyr 必须是我正在加载的其他包的依赖项。我尝试使用冲突来解决这个问题。 conflicted_prefer("rename","dplyr")) 失败,但 conflicted_prefer("rename","plyr") 有效。如果食谱的作者可以在他们的代码中明确说明这一点,那就太好了。

标签: r ggplot2 errorbar


【解决方案1】:

我也遇到过同样的问题。发生这种情况是因为您试图在 R 中的 rename() 函数中使用外部变量。更改此行:

datac <- rename(datac, c("mean" = measurevar))

到

datac <- rename(datac, !!measurevar := mean)

为我解决了这个问题。有关更多详细信息,请参阅此链接。 use outside variable inside of rename() function in R

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    相关资源
    最近更新 更多