2016-04-14 1 views
1

Je tente d'utiliser la méthode d'extraction du paquetage raster pour extraire des valeurs d'un objet Raster *.Rscript: Pourquoi Error dans UseMethod ("extract_"): est-il indiqué lors de la tentative d'utilisation de raster :: extract?

RStudioPrompt> jpnpe <- extract(jpnp, jpnb, fun = mean, na.rm = T) 

où jpnp est l'objet raster et jpnb est SpatialPolygonsDataFrame

Cependant l'erreur suivante est indiquée:

Error in UseMethod("extract_") : 
    no applicable method for 'extract_' applied to an object of class "c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')" 

Comment puis-je passé cette erreur?

Répondre

2

Le problème peut être dû à l'existence d'un autre package avec le même nom de méthode, masquant la méthode d'extraction raster.

Le paquetage tidyr a une méthode d'extraction qui peut entrer en conflit avec la méthode d'extraction de raster.

Confirmer en cochant les bibliothèques chargées en faisant:

>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"  

vous pouvez également vérifier la méthode extrait est en cours de chargement en tapant le nom de la fonction sans parenthèses (comme ci-dessous, l'environnement vous dira quel paquet est utilisé):

> 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> 

Pour résoudre l'erreurjuste décharger le paquet incriminé, en rstudio vous pouvez utiliser la commande suivante:

>.rs.unloadPackage("tidyr") 

et réexécuter la méthode d'extraction de trame:

>jpnpe <- extract(jpnp, jpnb, fun = mean, na.rm = T)