"не удалось найти функцию" при запуске примеров в проверке пакета - PullRequest
1 голос
/ 17 июня 2020

При запуске R CMD check я получаю

> checking examples ... ERROR
...
...
  > lfqplotter$pca()
  Error in inner_join(wide$annotation, xx) : 
    could not find function "inner_join"
  Calls: <Anonymous> -> <Anonymous>
  Execution halted

Подобный вопрос задавался ранее. «Не удалось найти функцию» в примерах Roxygen во время проверки CMD

Но в моем случае это функция из импортированного пакета (dplyr), которую я перечислил в разделе «Импорт» в файле ОПИСАНИЯ .

Imports:
dplyr

Я знаю, что могу указать и предложение @importFrom с roxygen2. Однако, поскольку пакет содержит десятки функций с примерами, и многие используют dplyr::inner_join и другие dplyr функции, я бы предпочел не заполнять комментарии сотнями @importFrom dplyr inner_join select etc etc или добавлять @import dplyr везде. В качестве альтернативы я мог бы, но я не хочу, чтобы каждый вызов функции dplyr был префиксом dplyr::. Есть ли какой-либо другой вариант, чтобы увидеть рабочие примеры и импортированные функции пакета?

Ответ

На основании ответа @Roland и @Waldi я добавил в проект R-файл AAA_importFrom.R с блоком:

#' @importFrom tidyr ...
#' @importFrom dplyr ...
...
#'
NULL

и удалил все предложения @importFrom из документации по функциям.

1 Ответ

0 голосов
/ 17 июня 2020

У вас также должно быть:

importFrom(dplyr,inner_join)

в NAMESPACE

вы можете заставить Roxygen создать его в NAMESPACE, имея:

#' @ImportFrom dplyr inner_join
NULL

в одном из ваших сценарии R пакета

...