直接调用函数时禁止加载消息(不完全加载包)



我想像这篇文章一样抑制加载消息,只是我没有加载整个包,而是直接调用函数。

例如,按如下方式调用raster函数:

f <- system.file("external/test.grd", package="raster")
r <- raster::raster(f)
p <- raster::rasterToPolygons(r, dissolve = TRUE)

消息中的结果:

Loading required namespace: rgeos

如何防止出现此消息?到目前为止,我找到的唯一解决方案是按如下方式加载rgeos

suppressPackageStartupMessages(library(rgeos))

但是当我使用函数raster::rasterToPolygons在包中时,我真的不想完全加载rgeos

以为我以前试过这个,但显然没有。这两个选项都有效:

p <- suppressMessages(raster::rasterToPolygons(r, dissolve = TRUE))
p <- suppressPackageStartupMessages(raster::rasterToPolygons(r, dissolve = TRUE))

我使用::显式调用该函数(此处由 Hadley 建议),但您也可以通过将它导入包NAMESPACE来避免rgeos加载消息。如果使用roxygen2,这意味着在函数顶部添加@import rgeos作为roxygen2注释。我想@importFrom rgeos fun也可以工作,但我不知道raster::rasterToPolygons正在使用哪些rgeos函数.

相关内容

  • 没有找到相关文章

最新更新