/
MKE_ROB_R.R
81 lines (64 loc) · 2.34 KB
/
MKE_ROB_R.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#Creating counts of points in polygons
#Here: Robberies per block group in Milwaukee, 2014
#You can also get multiple packages at once
#install.packages("ctv")
#library(ctv)
#install.views("Spatial")
#Run the first script if you have to
source("I:/MKE_R_GEO/R_Script.R")
dev.off()
setwd("I:/")
###Check lines 17 and 46 for hidden errors
#Overlay Robberies over data to get totals in each block group
#over() gives point-->Polygon
#over(Robberies,data)
#CRS needs to be the same:
#Make same CRS and redo
Robberies@proj4string
data@proj4string
data@proj4string<-Robberies@proj4string
count<-over(Robberies,data)
#extract and add to dataframe
head(count)
table(count$GEOID)
as.numeric(table(count$GEOID))
data@data$RobCount<-as.numeric(table(count$GEOID))
#check your results
head(data@data)
#Check colnames: RobCount should be #10
colnames(data@data)
#Make a choropleth map for count: Make breaks here too
rc<-data$RobCount
breaks2<-classIntervals(data@data[,10],n=8,style="jenks")
breaks2<-breaks2$brks
choropleth(sp=data,v = rc, shading(breaks2,cols = colors), main="Number of Milwaukee Robberies, 2014")
plot(CityLine,col="black",lwd=4,lty=1,add=TRUE)
#Notice large block groups = high counts
#Now get density per unit of land area
#data@data$RobDens<-data@data$RobCount/data@data$ALAND
#data@data$RobDens<-NULL
#Turn integer-->numeric
#as.numeric() does not turn the integer into the correct values
head(data@data$ALAND)
head(as.numeric(data@data$ALAND))
#So here is a workaround
data@data$ALAND2<-as.numeric(as.character(data@data$ALAND))
#Now it works
data@data$RobDens<-data@data$RobCount/data@data$ALAND2
head(data@data)
#Check histograms: Density and Count
hist(data$RobDens)
hist(data$RobCount)
#check column position--RobDens should be column 12
colnames(data@data)
#make breaks for RobDens
breaks3<-classIntervals(data@data[,12],n=8,style="jenks")
breaks3<-breaks3$brks
#Choropleth map for density
rd<-data$RobDens
choropleth(sp=data,v = rd, shading(breaks3,cols = colors), main="Density of Milwaukee Robberies, 2014")
plot(CityLine,col="black",lwd=4,lty=1,add=TRUE)
jpeg("MKEROBDENS.jpg",width=9,height=9,units="in",res=300)
choropleth(sp=data,v = rd, shading(breaks3,cols = colors), main="Density of Milwaukee Robberies, 2014")
plot(CityLine,col="black",lwd=4,lty=1,add=TRUE)
dev.off()