gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 03:25:04 26 4
gpt4 key购买 nike

问题总结:当我尝试通过“添加”参数向 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com