###

require(maptools)

getwd()
setwd("Desktop/visuaesp")

mg <- readShapePoly("maps/31mu2500gc")

class(mg)
names(mg)
names(attributes(mg))

class(mg@data)
dim(mg@data)

head(mg@data)
str(mg@data)

class(mg@polygons)
length(mg@polygons)

bbox(mg)
str(mg@polygons[[1]])
head(mg@data, 1)
length(mg@polygons[[1]]@Polygons)
npl <- sapply(mg@polygons,  function(x) 
  length(x@Polygons))
summary(npl)

npts <- sapply(mg@polygons,  function(x) 
  nrow(x@Polygons[[1]]@coords))
summary(npts)

x <- runif(5)
y <- rexp(5)
plot(x, y)
plot(x, y, asp=1)
plot(x, y, asp=5)

?par
par(mar=c(0,0,0,0))
plot(mg)

head(mg@data)

spplot(mg, 'LATITUDE')

### dados de populacao 
dpmg <- read.csv2("dados/pop20002010munMG.csv", 
 skip=8, nrows=853)
dpmg <- read.csv2("http://www.sidra.ibge.gov.br/download/popmg2010.csv", skip=8, nrows=853)

head(mg@data[, 1:2])
head(dpmg)
str(dpmg)

d1 <- data.frame(id=1:5, x=rnorm(5))
d2 <- data.frame(id=c(3,2,1,5,7), y=rnorm(5))
d1
d2
merge(d1, d2)
merge(d1, d2, all.x=TRUE)
merge(d1, d2, all.x=TRUE, all.y=TRUE)

merge(d2, d1)
merge(d2, d1, sort=FALSE)

d3 <- data.frame(i=c(2,1,5), z=runif(3))
d3

merge(d1,d3)

merge(d1, d3, by.x="id", by.y="i")

### aplicando merge aos dados e mapa
head(mg@data[, 1:2])
head(dpmg)

names(dpmg) <- c("cmun", "p10")
head(dpmg)

### extraindo o codigo dos dados
dpmg$GEOCODIGO <- substr(as.character(dpmg[,1]), 1, 7)
head(dpmg)

mg@data <- merge(mg@data, dpmg, sort=FALSE)
names(mg)

spplot(