2012-03-04 17 views

Respuesta

5

respuesta rápida:

nams <- map("world", namesonly=TRUE, plot=FALSE) 

map("world", region=nams[-grep("Antarctica", nams)]) 

más larga respuesta:

Los datos de mapas en "mundo" se hace referencia a por nombres de regiones y éstas son generalmente los datos de caracteres en "continente: país" o "continente: Subregión " formato. Para obtener esos nombres que están en una base de datos externa, primero necesita usar mapas ("mundo", ...) con parámetros que devuelven solo los nombres y no todas las otras coordenadas. Si quiere encontrar todas las entradas que contienen "Antártida", necesita usar grep() para identificar su posición en el vector de nombres retornados.

+0

que funcionó, gracias. Ojalá hubiera un buen libro, para principiantes R El software es increíble, pero la sintaxis no es amigable :( –

+0

No puedo afirmar haber sabido todo eso por adelantado. Hay mucho valor que obtener ejecutando los ejemplos en las páginas de ayuda. Tenía que buscar en el archivo de ayuda y hacer un poco de experimentación para llegar allí. En particular, parecía que la necesidad de incluir plot = FALSE era necesaria para obtener resultados como un vector de caracteres, pero resultó que esos valores estaban siendo devueltos, pero solo invisibles, por lo que tipeando 'map (" world ", namesonly = TRUE)' no devolvió nada en la consola pero hubiera tenido éxito con 'nams2 <- map (" world ", namesonly = TRUE)'. –

+0

Esto me da un error: 'la expresión regular es demasiado grande ' –

4

Si busca sólo para esas áreas, la solución brutal sería el uso de mapa del mundo, especifique EE.UU. como region y definir la latitud/longitud para crear límites, por lo que el mapa sólo mostrará área específica:

library(maps) 
long <- c(-180,-50) 
lat <- c(10,80) 
map("world",regions=".*usa",xlim=long,ylim=lat) 

enter image description here

Cuestiones relacionadas