r - ggpubr 找不到 'mean_se' 除非 ggpubr 是通过 library() 附加的

标签 r ggplot2 devtools r-package ggpubr

问题总结:当我尝试通过“添加”参数向 ggpubr 图添加汇总统计时,ggpubr 找不到汇总统计函数(下面的示例代码).例如,如果我尝试使用 add="mean_se" 添加错误栏,我会收到一条错误消息,但没有错误栏。

不满意解决方案:通过调用 library(ggpubr) 附加 ggpubr 解决此问题。参见 this answer .

为什么上述解决方案不尽如人意:我正在开发一个包,因此想避免通过调用 library() 附加其他包 - 我的理解是这是最佳实践,以避免用用户可能没有预料到的东西污染命名空间会被加载。

我的问题:有没有办法让 ggpubr 在不附加包的情况下找到 mean_se

示例代码(在我的包中的 .R 文件中):

make.plot = function(){
  utils::data("iris")
  ggpubr::ggbarplot(
    data = iris,
    x = "Species",
    y = "Sepal.Length",
    add = "mean_se")
}

示例输出:

> devtools::load_all(".")
# i Loading MyPackage
> make.plot()
# Warning message:
# Computation failed in `stat_summary()`:
# object 'mean_se_' of mode 'function' was not found 

应该 起作用但没有起作用的一件事是将“ggpubr::mean_se_”作为add 参数传递。这避免了错误消息,但会产生不正确的图。情节应该是这样的:

Desired plot

但是传递“ggpubr::mean_se_”反而会产生: enter image description here

额外的怪异之处:如果我曾经添加一个加载 ggpubr 的调用,使用 devtools::load_all(".") 构建 MyPackage,并运行它,然后上面的代码 never 失败,直到我退出并重新加载 RStudio,即使我从我的包中删除调用 library(ggpubr) 并重新构建它也是如此。

最佳答案

由于您正在创建一个包,因此您可以通过将 mean_se_ 导入到您的函数中来确保它在搜索路径中。

如果你使用 roxygen,你可以添加标签 @importFrom ggpubr mean_se_:

#' @importFrom ggpubr mean_se_
make.plot = function(){
  utils::data("iris")
  ggpubr::ggbarplot(
    data = iris,
    x = "Species",
    y = "Sepal.Length",
    add = "mean_se")
}

然后你运行 devtools::document() 并运行你的函数,你的输出应该是这样的:

a plot

关于r - ggpubr 找不到 'mean_se' 除非 ggpubr 是通过 library() 附加的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72117126/

相关文章:

r - 使用 R 进行网络爬行

r - 在 scale_fill_manual ggplot 调用中以编程方式指定颜色

r - 使用 ggplot2 在循环中创建绘图

r - 通过roxygen2在R文档中生成具有多个参数的项目

javascript - Chrome 开发者工具 : How to copy a JSON object as text from the Sources tab or Watch pane

r - 避免使用 devtools 检查 R 包构建的示例

r - 这些包需要从(在 NAMESPACE 文件中)导入

r - 在 R 中绘制平滑图

java - 从 R : Java version missmatch 调用时 h2o 连接失败

r - 在 ggplot2 表达式中混合表达式、纯文本和换行符