【发布时间】:2013-08-03 15:53:32
【问题描述】:
我想在不加载包的情况下使用 Bioconductor 包 hypergraph 和 hyperdraw 中的函数。从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 而不是放入@987654336 @ 在我的DESCRPTION 文件中。
有人知道如何解决这个问题吗?
【问题讨论】:
-
尚未尝试运行此程序,但请尝试:
hyperedges <- hyperdraw:::hyperedges -
这也会出错,请参阅编辑后的帖子
-
如果您构建的包在单个函数中使用来自
hyperdraw和hypergraph的函数,您必须将它们至少作为Imports:(在任何情况下都优于Depends:)。据我所知,没有办法解决这个问题。Suggests:仅用于小插图和示例中的包。 -
@Ben Bolker:我明白了,我只是重新阅读了“编写 R 扩展”中的部分
标签: r package function-calls bioconductor