Я хочу использовать функции из пакетов Bioconductor hypergraph
и hyperdraw
без загрузки пакетов. При запуске примера из hyperdraw
виньеткиR вызов функции без загрузки пакета
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
файле.
У кого-нибудь есть идея, как это решить?
HAve не пытался запустить это, но попробуйте: 'hyperedges <- hyperdraw ::: hyperedges' –
Это также дает сообщение об ошибке – user1981275
Если вы создаете пакет, 'даже в одной функции, вы ** должны ** поместить их в свой файл' DESCRIPTION', по крайней мере, как 'Импорт:' (что в любом случае предпочтительнее 'Depends:'). Насколько я знаю, это не так. 'Предлагает:' для пакетов, используемых только в виньетках и примерах. –