Я разрабатываю пакет, который предоставляет класс S3 с именем "Foo". Он также предоставляет метод "as" для принудительного преобразования его в (чужой) класс S4 с именем "Bar". Мой код выглядит так:
#' ...
setOldClass("Foo")
#' ...
setAs("Foo", "SpatialPointsDataFrame", function(from) {
# do stuff and return a SpatialPointsDataFrame
})
edit Я пробовал это:
#' ...
#' @name as
#' @export
setAs("Foo", "SpatialPointsDataFrame", function(from) {
# do stuff and return a SpatialPointsDataFrame
})
но затем я получаю вот это от R CMD CHECK:
проверка того, может ли пространство имен быть загружено с указанными зависимостями ... ПРЕДУПРЕЖДЕНИЕ Ошибка в namespaceExport(ns, exports) : undefined exports: as Вызовы: loadNamespace -> namespaceExport Выполнение остановлено
Пространство имен должно быть способно загружаться только с загруженным базовым пространством имен: иначе, если пространство имен будет загружено сохраненным объектом, сессия не сможет запуститься.
Возможно, некоторые импорты должны быть объявлены в файле NAMESPACE.
в отдельном .R файле у меня есть:
#' @importClassesFrom sp SpatialPointsDataFrame
Я использую пакет devtools Хэдли, так что, полагаю, это roxygen2. Вот что я делаю:
R> document("MyPackage")