2012-03-04 3 views

risposta

5

risposta rapida:

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

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

Longer risposta:

I dati mappe in "mondo" fa riferimento a nomi delle regioni e questi sono generalmente i dati di carattere in "continente: paese" o "continente: subregione " formato. Per ottenere quei nomi che si trovano in un database esterno, è necessario prima usare le mappe ("mondo", ...) con parametri che restituiscono solo i nomi e non tutte le altre coordinate. Se si desidera trovare tutte le voci contenenti "Antartide", è necessario utilizzare grep() per identificare la propria posizione nel vettore dei nomi restituiti.

+0

che ha funzionato, grazie. Vorrei che ci fosse un buon libro, per i principianti di R. Il software è fantastico, ma la sintassi non è amichevole :( –

+0

Non posso affermare di averlo saputo in anticipo.Vi è molto da guadagnare eseguendo gli esempi nelle pagine di aiuto. nel file di aiuto e fare un po 'di sperimentazione per arrivarci, in particolare sembrava che fosse necessario includere plot = FALSE era necessario per ottenere l'output come vettore di carattere, ma si è scoperto che quei valori venivano restituiti ma solo in modo invisibile, quindi digitando 'map (" world ", namesonly = TRUE)' non restituiva nulla sulla console ma sarebbe riuscito con 'nams2 <- map (" world ", namesonly = TRUE)'. –

+0

Questo mi genera un errore: 'l'espressione regolare è troppo grande ' –

4

Se si cerca solo per quelle aree, la soluzione brutale sarebbe quella di utilizzare la mappa del mondo, specificare Stati Uniti come un region e definire la latitudine/longitudine per creare limiti, quindi la mappa visualizza solo settore specifico:

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

enter image description here