Я пишу пакет, который построен на основе autoplot()
пакета ggplot2. В настоящее время у меня есть функция с именем breg()
, которая выступает в качестве конструктора для класса breg
; выход которого можно построить с использованием autoplot.breg()
. В моей breg()
функции, мои команды Roxygen как таковые:Импортирование генерических файлов S3 из другого пакета
#' @export breg
Тогда в autoplot.breg()
У меня есть
#' @import ggplot2
#' @importFrom ggplot2 autoplot
#'
#' @method autoplot breg
#' @export
Я не был уверен, что мне нужно @importFrom ggplot2 autoplot
если я импортировал весь ggplot2
. Однако я отвлекся, в моем NAMESPACE
файле у меня есть
S3method(autoplot,breg)
export(breg)
import(ggplot2)
importFrom(ggplot2,autoplot)
Мой вопрос, почему я до сих пор следующее предупреждающее сообщение:
Warning message:
In setup_ns_exports(pkg, export_all) :
Objects listed as exports, but not present in namespace: autoplot
Просто чтобы уточнить: вы генерируете файл 'NAMESPACE' из комментариев Roxygen, так? –
Да, я. Я только что удалил «@importFrom ggplot2 autoplot» и, похоже, устранил проблему. – nathaneastwood
Не относится к вашей проблеме, но обратите внимание на следующее из пакетов [* R пакетов] Хэдли (http://r-pkgs.had.co.nz/man.html): «Старые версии roxygen требовали явного' @method общие теги класса для всех методов S3. Начиная с версии 3.0.0, это больше не нужно, так как roxygen2 автоматически выяснит это. «Использование' @ importFrom', насколько я могу судить, полностью устарело. –