我想使用来自生物导体包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中,也不愿将这些包放到DESCRPTION文件中的Depends中。
有谁知道怎么解决这个问题吗?
发布于 2013-08-02 12:11:50
超图在它的描述文件中有这个
Depends: R (>= 2.9.0), methods, grid, graph, hypergraph, Rgraphviz它依赖于在hypergraph::hyperedges路径上找到search()。就我个人而言,我认为超图应该包括一条线
importFrom(hypergraph, hyperedges)在它的命名空间文件中。目前,最好的做法是添加依赖项:对描述文件和importFrom(hyperdraw, <whatever functions you need>)进行超图绘制。我已经联系了超图的维护者,要求他们按上面的方式更新名称空间;然后您只需使用Imports: hyperdraw即可。我认为您只是在为自己工作,并试图使用建议或其他方法来颠覆对正式依赖的需求,从而使用户感到沮丧。
https://stackoverflow.com/questions/18015844
复制相似问题