【发布时间】:2011-12-07 05:00:23
【问题描述】:
我正在开发一个包,它提供一个名为“Foo”的 S3 类。它还提供了一种“as”方法,用于将其强制为(其他人的)名为“Bar”的 S4 类。我的代码如下所示:
#' ...
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")
【问题讨论】:
-
hadley 的开发工具包。编辑以显示最佳尝试。
-
不错的编辑。如果这不能很快得到答复,我会感到惊讶。