我尝试使用栅格包的提取方法从Raster *对象中提取值。
RStudioPrompt> jpnpe <- extract(jpnp, jpnb, fun = mean, na.rm = T)
其中jpnp是栅格对象,jpnb是SpatialPolygonsDataFrame
但是会出现以下错误:
Error in UseMethod("extract_") :
no applicable method for 'extract_' applied to an object of class "c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"
如何通过此错误?
答案 0 :(得分:4)
问题可能是由于另一个包具有相同的方法名称,混淆了栅格提取方法。
tidyr包有一个提取方法,可能与栅格的提取方法冲突。
通过检查加载的库来确认:
>search()
[1] ".GlobalEnv" **"package:tidyr"** "package:dplyr"
[4] "package:rgeos" "package:ggplot2" "package:RColorBrewer"
[7] "package:animation" "package:rgdal" "package:maptools"
[10] **"package:raster"** "package:sp" "tools:rstudio"
[13] "package:stats" "package:graphics" "package:grDevices"
[16] "package:utils" "package:datasets" "package:methods"
[19] "Autoloads" "package:base"
您还可以通过键入不带括号的函数名称来检查正在加载的提取方法(如下所示,环境将告诉您正在使用的包):
> extract
function (data, col, into, regex = "([[:alnum:]]+)", remove = TRUE,
convert = FALSE, ...)
{
col <- col_name(substitute(col))
extract_(data, col, into, regex = regex, remove = remove,
convert = convert, ...)
}
<environment: namespace:tidyr>
要解决错误 只是卸载有问题的软件包,在RStudio中您可以使用以下命令:
>.rs.unloadPackage("tidyr")
并重新执行栅格提取方法:
>jpnpe <- extract(jpnp, jpnb, fun = mean, na.rm = T)