gpt4 book ai didi

不加载包的R函数调用

转载 作者:行者123 更新时间:2023-12-04 11:39:29 25 4
gpt4 key购买 nike

我想使用 Bioconductor 包中的函数 hypergraphhyperdraw无需加载包。运行来自 hyperdraw 的示例时小插图

dh1 <- hypergraph::DirectedHyperedge("A", "B", "R1")
dh2 <- hypergraph::DirectedHyperedge(c("A", "B"), c("C", "D"), "R2")
hg <- hypergraph::Hypergraph(LETTERS[1:5], list(dh1, dh2))
hgbph <- hyperdraw::graphBPH(hg)

我收到错误:
Error in hyperdraw::graphBPH(hg) : could not find function "hyperedges"

如果我尝试加载 hyperedges :
hyperedges <- hyperdraw:::hyperedges

我收到错误
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
object 'hyperedges' not found

当我使用 library 加载两个包时或 require ,我没有得到任何错误(在没有 hypergraph::hyperdraw:: 的情况下运行上面的代码)。

我不想加载包的原因是因为我正在构建一个使用 hyperdraw 的包。和 hypergraph只有一个功能,我宁愿将这些包放入 Suggests比成 Depends在我的 DESCRPTION文件。

有谁知道如何解决这个问题?

最佳答案

hyperdraw 在它的描述文件中有这个

Depends:      R (>= 2.9.0), methods, grid, graph, hypergraph, Rgraphviz

它依赖于寻找 hypergraph::hyperedgessearch()小路。就个人而言,我认为 hyperdraw 应该包括一条线
importFrom(hypergraph, hyperedges)

在它的 NAMESPACE 文件中。目前,最好的做法是将 Depends: hyperdraw 添加到您的说明文件中,然后添加到 importFrom(hyperdraw, <whatever functions you need>) .我已经联系了 hyperdraw 的维护者,要求他们更新上面的 NAMESPACE;然后您只需 Imports: hyperdraw .我认为您只是在为自己工作,并通过尝试使用 Suggests 或其他方法来破坏对正式依赖项的需求而使您的用户感到沮丧。

关于不加载包的R函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015844/

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