Использование неэкспортируемой функции из другого пакета R?

Я часто использую функции типа утилиты из других не экспортируемых пакетов: pkg:::fun(). Мне интересно, могу ли я использовать такую ​​функцию в новой функциональности/области в своем собственном R-пакете. Каков правильный подход? Включает ли пакет в свой файл описания достаточно?

Ответ 1

  • Подводя комментарии к @baptise и т.д.:

  • ::: не разрешено в CRAN, поэтому параметры:

    • попросите автора экспортировать его, чтобы вы могли использовать его в своем пакете через стандартный импорт или предлагать.
    • скопируйте/поднимите версию и четко укажите в своем пакете.

Ответ 2

Другой трюк использует getFromNamespace

fun = getFromNamespace("fun", "pkg")

Единственное преимущество перед ::: заключается в том, что вы не получаете никаких ПРИМЕЧАНИЕ, и это разрешено для CRAN. Конечно, это не очень хорошая практика, так как скрытое изменение в pkg может разорвать ваш пакет.

Примечание: с помощью roxygen вы также должны написать #' @importFrom utils getFromNamespace или поместить его в свой NAMESPACE вручную.