Rscript:为什么UseMethod中的错误(“extract_”):在尝试使用raster :: extract时被指示?

时间:2016-04-14 07:19:28

标签: rstudio rscript r-raster

我尝试使用栅格包的提取方法从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')"

如何通过此错误?

1 个答案:

答案 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)
相关问题