Im HistData-Paket für R ( https://r-forge.r-project.org/R/?group_id=574 ) sind die Datensätze enthalten, die sich auf John Schnees Karte des Cholera-Ausbruchs in London von 1854 beziehen sind maßgebend, sorgfältig digitalisiert unter Aufsicht von Walter Tobler. Einige Details zu diesen Datensätzen werden von John Mackenzie unter http://www1.udel.edu/johnmack/frec480/cholera/cholera2.html beschrieben .
Leider verwenden die Koordinaten von Todesfällen, Pumpen und Straßen ein willkürliches Koordinatensystem, keine Kartenkoordinaten, die für andere GIS-Anwendungen oder Kartierungssoftware in R geeignet sind (räumliche Pakete, ggmap usw.).
In http://freakonometrics.hypotheses.org/19213 verwendet Arthur Charpentier ggmap mit einer Version der John Snow-Daten von
http://www.rtwilson.com/downloads/SnowGIS_v2.zip . Die Cholera_Deaths.shp
Datei listet jedoch nur 489 Todesfälle auf, nicht die 578, in denen ich aufgezeichnet habe HistData::Snow.deaths
.
Eine Idee ist, die Beziehungen zwischen den Mitteln und den Standardabweichungen der (x, y) -Koordinaten zu finden und linear neu zu skalieren, aber vielleicht gibt es einen besseren Weg?
Folgendes habe ich bisher versucht
> data(Snow.deaths, package="HistData")
> D <- Snow.deaths[,2:3]
> colMeans(D)
x y
13.03312 11.69721
> var(D)
x y
x 3.8150987 0.3802654
y 0.3802654 2.7213828
Lesen Sie die Cholera_deaths-Datei
> folder <- "C:/Dropbox/R/data/Snow/SnowGIS_v2/SnowGIS"
> library(maptools)
> deaths <- readShapePoints(file.path(folder, "Cholera_Deaths"))
> head(deaths@coords)
coords.x1 coords.x2
0 529308.7 181031.4
1 529312.2 181025.2
2 529314.4 181020.3
3 529317.4 181014.3
4 529320.7 181007.9
5 529336.7 181006.0
> # deaths has only 250 observations; 489 deaths
> sum(deaths@data$Count)
[1] 489
> # try to relate to Snow.deaths
> X <- deaths@coords
> colnames(X) <- c("x", "y")
>
> XX <- data.frame(X, Freq=deaths@data$Count)
> XX <- vcdExtra::expand.dft(XX)
>
> colMeans(XX)
x y
529414.8 181031.9
> var(XX)
x y
x 10813.816 1521.693
y 1521.693 6227.924
>
OK, dann versuche ich, neu zu skalieren D
, um die gleichen XX
Mittelwerte und Standardabweichungen wie zu erhalten , aber hier funktioniert etwas nicht richtig - die Spaltenmittelwerte von Dscaled
hätten gleich denen von sein müssen XX
:
> # scale D to have the same means and standard deviations as XX
> Dscaled <- scale(D, center=TRUE, scale=TRUE)
> Dscaled <- scale(Dscaled, center=colMeans(XX), scale=sqrt(diag(var(XX))))
> colMeans(Dscaled)
x y
-5091.040 -2293.947
>
BEARBEITEN: Bei diesem Problem kann es hilfreich sein, die Karte von Snow so zu sehen, wie sie von der neuen Funktion SnowMap(axis.labels=TRUE)
in der Entwicklungsversion von HistData
(Rev. 102) auf R-Forge gezeichnet wurde . Die Achsenbeschriftungen zeigen den Ursprung des Koordinatensystems in der unteren linken Ecke wie in meinen Snow.*
Datendatensätzen.
Snow.*
Dateien in eine GIS-basierte Karte mit den Positionen von zwei oder drei Pumpen erhalten konnte, um die Genauigkeit zu überprüfen. Leider befinden sich in den SnowGIS
Dateien keine Etiketten für die Pumpen , und ich habe kein Beispiel dafür gesehen, wie man sie plottet, damit ich sie visuell vergleichen kann.