我正在开发一个包,提供了一个名为 "Foo" 的 S3 类。它还提供了一个 "as" 方法,用于将其转换为 (别人的) S4 类 "Bar"。我的代码如下:
#' ...
setOldClass("Foo")
#' ...
setAs("Foo", "SpatialPointsDataFrame", function(from) {
# do stuff and return a SpatialPointsDataFrame
})
编辑 我尝试了这个:
#' ...
#' @name as
#' @export
setAs("Foo", "SpatialPointsDataFrame", function(from) {
# do stuff and return a SpatialPointsDataFrame
})
但是我从R CMD CHECK得到了以下内容:
检查是否可以使用声明的依赖项加载名称空间... 警告 错误:在namespaceExport(ns,exports)中未定义导出:as 调用:loadNamespace -> namespaceExport 执行已停止
必须能够仅使用基本名称空间加载命名空间:否则,如果由保存的对象加载命名空间,则会话将无法启动。
可能需要在NAMESPACE文件中声明一些导入内容。
在另一个.R文件中,我有以下内容:
#' @importClassesFrom sp SpatialPointsDataFrame
我正在使用Hadley的devtools包,所以我猜它是roxygen2。这是我的操作:
R> document("MyPackage")