【发布时间】:2014-05-01 10:29:19
【问题描述】:
背景:
我正在编写一个小 R 包 RHYPE,用于导入/导出和可视化来自特定水文模型 (HYPE) 的结果。
我刚刚添加了一个地图绘图函数,其中一个参数是SpatialPolygonsDataFrame(参数“数据”),即数据映射到的空间对象,另一个是要附加到空间对象的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: 部分吗?我开始阅读 Depends vs. Imports 并且对如何编写方法的导入感到困惑,然后偶然发现了隐式要求。
感谢任何澄清的cmets!
【问题讨论】:
-
您可以使它们成为依赖项,但前提是这些包对于运行您的包是绝对必要的。如果它们不是绝对必要的,您还可以“借用”其他包中使用的函数的源代码。
-
@RichardScriven 谢谢,在这种情况下,许多其他函数根本不依赖于 sp,所以这里的依赖似乎有点过头了。
标签: r