问题总结:当我尝试通过“添加”参数向 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
参数传递。这避免了错误消息,但会产生不正确的图。情节应该是这样的:
额外的怪异之处:如果我曾经添加一个加载 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()
并运行你的函数,你的输出应该是这样的:
关于r - ggpubr 找不到 'mean_se' 除非 ggpubr 是通过 library() 附加的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72117126/