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