2017-08-16 1 views
0

Ich habe an der Broschüre in R gearbeitet.R Leaflet- Ändern der Dichte zu Spalte Name meiner eigenen

https://rstudio.github.io/leaflet/choropleths.html

Die obige uns-Karte Dichte eines Zustand.Verfahren Format der Daten enthält, ist Geo-Json. Ich möchte die Dichtevariable entfernen und möchte meinen Spaltennamen mit dem entsprechenden Variablenwert übergeben. (Zum Beispiel, wenn Sie auf dem New Mexico schweben, bekomme ich die Dichte als 17.16 (density:17.16), stattdessen möchte ich als (mycolumnname:value) anzeigen).

+1

Zeigen Sie Ihren aktuellen Code und die Daten sowie die Daten, die Sie ersetzen möchten. Ich kann dir wahrscheinlich helfen, dahin zu kommen, wo du sein musst. – sconfluentus

+0

https://www.dropbox.com/s/ajwqg82dpyc4enm/Leaflet%20us%20Map.txt?dl=0 (Dies enthält den R-Code für Prospekte) –

+0

https://www.dropbox.com/s/dkjleaq9m7m2jir /my%20file.xlsx?dl=0 (das sind die Daten mit meiner Spalte x und y) ich möchte die x- und y-Werte anstelle des Dichtewerts anzeigen. –

Antwort

0

Dies ist eine ziemlich häufige Notwendigkeit bei der Arbeit mit Broschüre. Es gibt ein paar Möglichkeiten, dies zu tun, aber dies ist die einfachste in meinen Gedanken: Alle Informationen, die Sie grafisch darstellen möchten, ist im Abschnitt der SpatialPolygonsDataFrame bei states @ data gespeichert, die Sie sehen können, indem Sie auf die Abteilungsleiter dieses Datenrahmen:

ich machte einen Datenrahmen (traditioneller r Datenrahmen) mit den Zustandsnamen von den ursprünglichen SpatialPolygonsDataFrame Namen states im Code oben und my_var erstellt.

a<-data.frame([email protected]$name) 
a$my_var <- round(runif(52, 15, 185),2) 

Dies ist die ersten paar Reihen meines neuen Datenrahmen, die wie das Ihre ist, aber andere Daten als Dichte in ihm.

head(a) 
     States my_var 
1 Alabama 120.33 
2  Alaska 179.41 
3 Arizona 67.92 
4 Arkansas 30.57 
5 California 72.26 
6 Colorado 56.33 

Nun, da Sie mit diesen Datenrahmen haben, können Sie die Bibliothek maptools und tun ein Polygon cbind aufrufen wie folgt:

states2<-spCbind(states,a$my_var) 

nun an der Spitze der Staaten2 suchen (die man Staaten nennen könnte und ersetzen die ursprünglichen Zustände SpatialPolygonsDataFrame ich hielt beide vor vergleichen und nach)

head([email protected]) 
    id  name density data.my_var 
0 01 Alabama 94.650  58.01 
1 02  Alaska 1.264  99.01 
2 04 Arizona 57.050  81.05 
3 05 Arkansas 56.430  124.68 
4 06 California 241.700  138.19 
5 08 Colorado 49.330  103.78 

diese hinzugefügt, um die data.my_var Variable in der räumliche Datenrahmen. Jetzt können Sie suchen/ersetzen, durchgehen und ersetzen Sie die Referenzen in Ihrem Code, wo es density mit data.my_var heißt und die neuen Variablen verwendet werden.

Wichtige Dinge zu beachten Ihre Daten enthalten 50 Zustandsnamen, die räumliche Datenrahmen 52 hat, müssen Sie vor cBinding sie in den fehlenden Staaten Datenrahmen hinzuzufügen, müssen sie die gleiche Länge und in der gleichen Reihenfolge.

Wenn Sie die Namen wie diese greifen:

a<-data.frame([email protected]$name) 

aus den Staaten Objekt können Sie dann links in die Staaten zusammenführen, mit Ihren Daten, und es wird die Reihenfolge a und alle Zellen zu halten, die leer sind, wo Die neuen Regionen haben keine Daten in Ihrem Datensatz bleiben leer.

Verwenden Sie merge, um sicherzustellen, dass die Daten richtig ausgerichtet sind.

a<- merge(a, your_data ,by=c("States","name")) 

Auch, wenn sie zusammengefügt sind, und Sie haben überprüft, dass [email protected]$name in der gleichen Reihenfolge wie a$States ist, können Sie einen beliebigen Namen verwenden Sie in der SpatialPolygonDataFrame als neue Überschrift wollen, indem die Daten in einen Vektor mit dem Namen Extrahieren Sie wollen, bevor sie auf die Bindung:

my_var <- a$my_var 
states2<-spCbind(states, my_var) 

das Sie mit einem Datenrahmen verlassen, die wie folgt aussieht:

id  name density  my_var 
0 01 Alabama 94.650  58.01 
1 02  Alaska 1.264  99.01 

Dies ist einfacher als Spaltenname aus der inneren Broschüre ohne lange Strings zu adressieren.

+0

können wir mehr als zwei Spalten zu den oben hinzufügen zum Beispiel Sie haben my_var zu den Daten hinzugefügt Ich möchte eine Spalte mit my_var1 als eine zusätzliche Spalte, so wenn Sie über den Zustand, zeigt es die Werte von my_var und my_var 1 zu einer Zeit . –

+0

absolut! Sie können viele Datenspalten erstellen, die mit Ihren geografischen Regionen verknüpft sind, und sie entweder in verschiedenen Layern einer einzelnen Map referenzieren oder einen Frame zum Erstellen mehrerer Maps verwenden. Ich habe eine Serie für ein Arbeitsprojekt mit 17 separaten Karten und zusammengesetzten Popups erstellt, die die Daten aller 17 Spalten für jede Geographie in ihnen enthalten, sowie ein SVG-Diagramm für jede Karte darin .... Leaflet und 'SpatialPolygonDataFrames' sind sehr vielseitige Kombination! – sconfluentus

Verwandte Themen