2015-06-11 27 views
19

Questa domanda può essere un duplicato di an earlier unanswered one. Ho ancora il problema.Errore: isTRUE (gpclibPermitStatus()) non è VERO

Sto cercando di utilizzare uno shapefile codice postale e venire con il seguente errore:

tract <- readOGR(dsn = ".", layer = "cb_2013_us_zcta510_500k") 
tract<-fortify(tract, region="GEOID10") 
Error: isTRUE(gpclibPermitStatus()) is not TRUE 

Ho provato ad installare gpclib per risolvere questo problema ma poi ho ottenere il seguente errore:

install.packages("gpclib") 

Installing package into ‘C:/Users/Nick/Documents/R/win-library/3.2’ 
(as ‘lib’ is unspecified) 
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘gpclib’ 
    These will not be installed 

Aiuto?

+0

è 'rgeos' installato sul tuo sistema? http://cran.r-project.org/web/packages/rgeos/index.html – rcs

+0

È ora, e ho ancora lo stesso problema. – garson

+6

Se hai installato 'rgdal',' rgeos' e 'ggplot2', non dovresti vedere questo errore dopo aver riavviato R. Non c'è più bisogno di gpclib. –

risposta

3

ho imparato questa risposta altrove: ho dovuto digitare

install.packages("gpclib", type="source")

e ha funzionato bene.

+1

Si noti che il pacchetto gpclib è gratuito solo per uso non commerciale; la sua licenza restrittiva era la ragione principale per sbarazzarsi di dipendere da esso. –

21

È possibile consultare il file master di Hadley per ggplot2/R/fortify-spatial.r. Sulla base di this link esterno, la mia comprensione è che le linee 31-4 (nella sua forma attuale) utilizzate per leggere qualcosa di simile

# Union together all polygons that make up a region 
try_require(c("gpclib", "maptools")) 
unioned <- unionSpatialPolygons(cp, invert(polys)) 

Così allora un modo per affrontare il problema è stato quello di attivare la licenza

library(rgdal) 
library(maptools) 
if (!require(gpclib)) install.packages("gpclib", type="source") 
gpclibPermit() 

Come @rcs, @Edzer Pebesma e questa menzione answer, rgeos dovrebbe risolvere il problema per le installazioni più recenti.

8

Mi sono imbattuto nello stesso problema ma la soluzione era leggermente diversa da quelle elencate sopra.

Come indicato da altri, il problema è la dipendenza da gpclib, richiesta da maptools.

Tuttavia, dopo MapTools di carico, ha fornito il seguente messaggio ...

> library('maptools') 

Checking rgeos availability: FALSE 
Note: when rgeos is not available, polygon geometry  computations in maptools depend on gpclib, 
which has a restricted licence. It is disabled by default; 
to enable gpclib, type gpclibPermit() 

Così rgeos possono essere utilizzati al posto di gpclib. Per risolvere, ho fatto la seguente ...

install.packages('rgeos', type='source') 
install.packages('rgdal', type='source') 

La reinstallazione del rgdal rimuove la dipendenza da gpclib e indica rgeos.

Spero che questo sia utile.

+0

La reinstallazione di rgdal dopo l'installazione di rgeos e maptools mi ha aiutato! – Jens