背景:
我正在编写一个小的R包RHYPE,用于导入/导出和可视化来自特定水文模型(炒作)的结果。我刚刚添加了一个映射绘图函数,其中一个参数是SpatialPolygonsDataFrame (参数' data '),即数据映射到的空间对象,另一个是要附加到空间对象的data插槽上的新数据,并在后面绘制(参数'newdata')。
说明该功能相关部分的一些简化代码:
PlotMapOutput <- function(newdata, map) {
# control argument type
stopifnot(class(map) == "SpatialPolygonsDataFrame")
# add data to map table,
# merge by common column (assumed to be index 1 in both tables)
map@data <- data.frame(map@data, data[match(map@data[, 1], newdata[, 1]), ])
# plot the map
plot(map, col = map$color, border = NA)
}以下是我的问题:
通过要求SpatialPolygonsDataFrame,我隐式地要求函数的用户安装和加载包sp和rgdal (或另一个用于导入空间数据的包)。但是,我也显式地使用了这些包中的方法。我是否必须将这些包添加到描述文件的Imports:部分?我开始阅读“依赖”与“导入”之间的关系,并对如何编写方法的导入感到困惑,然后无意中发现了隐含的需求。
谢谢您的任何澄清意见!
发布于 2014-05-01 10:59:46
是的,您需要将其中一个包添加到Imports: (在您的DESCRIPTION中),但除此之外,您还需要很好地利用NAMESPACE文件,即使用一行
importClassesFrom("sp", spatialPolygonsDataFrame)我会用其他的(质量好!)包作为例子,如果阅读名称空间太难。
sp包本身就是一个值得学习的好例子。
https://stackoverflow.com/questions/23405961
复制相似问题