programação em r (parte 2) - ufu€¦ · programação em r (parte 2) henrique neder 1 1...

31

Upload: others

Post on 30-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Programação em R (parte 2)

Henrique Neder1

1Instituto de EconomiaUniversidade Federal de Uberlândia

Henrique Neder Programação em R (parte 2)

Page 2: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Sumário

1 Mapas no R

2 Algumas bases de dados obtidas através do R

Henrique Neder Programação em R (parte 2)

Page 3: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Primeiramente temos que instalar alguns �packages�:install.packages("maptools",dep=TRUE)install.packages("RColorBrewer",dep=TRUE)install.packages("plotrix",dep=TRUE)install.packages("classInt",dep=TRUE)install.packages("XML", dep=TRUE)install.packages("RCurl", dep=TRUE)

Henrique Neder Programação em R (parte 2)

Page 4: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

require(XML)require(RCurl)require(maptools)require(RColorBrewer)setwd("/home/hdneder/Dropbox/DISCIPLINA OPTATIVAPOSGRADUACAO/MAPAS")

Henrique Neder Programação em R (parte 2)

Page 5: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Carregando dados do Mapa estadualdownload.�le("https://dl.dropboxusercontent.com/u/35964572/estados_2010.zip",dest�le="estados_2010.zip")unzip("estados_2010.zip")mapaUF = readShapePoly("estados_2010.shp")plot(mapaUF)rm(list = ls())mapaMG = readShapePoly("31mu500gc.shp")plot(mapaMG)

Henrique Neder Programação em R (parte 2)

Page 6: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

dados =read.csv("/home/hdneder/temporario/TESTE.csv",header=TRUE,sep="")# mergeia o arquivo de dados espaciais com o arquivo de dadosmapaMG = merge(mapaMG, dados, by="GEOCODIGO")summary(mapaMG$produtividade)# Transforma os dados do produtividade em uma variável categórica.mapaMG$produtividade_cat = cut(mapaMG$produtividade,breaks=c(seq(from=0,to=3000,by=500),3600),labels=c('até 500','500-1000', '1000-1500', '1500-2000', '2000-2500','2500-3000','3000-3600'))

Henrique Neder Programação em R (parte 2)

Page 7: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Selecionamos algumas cores de uma paleta de cores do pacote RColorBrewer paletaDeCores = brewer.pal(7, 'Accent')# Agora fazemos um pareamento entre as faixas da variável sobre PIB(categórica) e as cores:coresDasCategorias =data.frame(produtividade_cat=levels(mapaMG$produtividade_cat),Cores=paletaDeCores)mapaMG = merge(mapaMG, coresDasCategorias) '# Con�gurando tela (reduzindo as margens da �gura)parDefault = par(no.readonly = T)layout(matrix(c(1,2),nrow=2),widths= c(1,1), heights=c(4,1))par (mar=c(0,0,0,0))

Henrique Neder Programação em R (parte 2)

Page 8: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Plotando mapaplot(mapaMG, col=as.character(mapaMG$Cores))plot(1,1,pch=NA, axes=F)legend(x='left', legend=rev(levels(mapaMG$produtividade_cat)),box.lty=0, �ll=rev(paletaDeCores),cex=.4, ncol=2,title='Produtividade da soja em grão kg/hectare')'

Henrique Neder Programação em R (parte 2)

Page 9: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 10: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Mas se você �cou um pouco desanimado com a di�culdade paraserem construídos estes mapas vamos mostrar um método maisdireto e com muito mais recursos, utilizando os pacotes tmap ergdal:install packages(�rgdal�)install packages(�tmap�)help(package=�tmap�)Clique no link �tmap-package�Vá até o link: vignette("tmap-nutshell").Neste link (do help do package tmap) você encontrará deiversasinstruções de como fazer mapas temáticos.Vamos começar com o mapa da Europa:library(tmap)library(rgdal)data(Europe)qtm(Europe)

Henrique Neder Programação em R (parte 2)

Page 11: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 12: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Vamos agora fazer um mapa da Europa com os valores do Índice deBem Estar:qtm(Europe, �ll="well_being", text="iso_a3",text.size="AREA", root=5, �ll.title="Well-Being Index",�ll.textNA="Non-European countries",format="Europe", style="gray")

Henrique Neder Programação em R (parte 2)

Page 13: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 14: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Com os comandos abaixo vamos desenhar um mapa com acobertura vegetal do mundo:data(land)data(World)pal8 <- c("#33A02C", "#B2DF8A", "#FDBF6F", "#1F78B4", "#999999", "#E31A1C","#E6E6E6", "#A6CEE3")tm_shape(land, ylim = c(-88,88), relative=FALSE) +tm_raster("cover_cls", palette = pal8, title="Global Land Cover", legend.hist=TRUE,legend.hist.z=0) +tm_shape(World) +tm_borders() +tm_format_World(inner.margins=0) +tm_legend(text.size=1,title.size=1.2,position = c("left","bottom"),bg.color = "white",bg.alpha=.2,frame="gray50",height=.6,hist.width=.2,hist.height=.2,hist.bg.color="gray60",hist.bg.alpha=.5)

Henrique Neder Programação em R (parte 2)

Page 15: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 16: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

E �nalmente um mapa do mundo com os dados de elevação:tm_shape(land, projection="eck4") +tm_raster("elevation", breaks=c(-Inf, 250, 500, 1000, 1500, 2000, 2500, 3000, 4000, Inf),palette = terrain.colors(9), title="Elevation", auto.palette.mapping=FALSE) +tm_shape(World) +tm_borders("grey20") +tm_grid(projection="longlat", labels.size = .5) +tm_text("name", size="AREA") +tm_compass(position = c(.65, .15), color.light = "grey90") +tm_credits("Eckert IV projection", position = c(.85, 0)) +tm_style_classic(inner.margins=c(.04,.03, .02, .01), legend.position = c("left", "bottom"),legend.frame = TRUE, bg.color="lightblue", legend.bg.color="lightblue",earth.boundary = TRUE, space.color="grey90")

Henrique Neder Programação em R (parte 2)

Page 17: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 18: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Mapas temáticos da Africainstall.packages(c("tmap", "rgdal", "WDI", "dplyr"))library(tmap)library(rgdal)library(WDI)library(dplyr)

Henrique Neder Programação em R (parte 2)

Page 19: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Desenhando um primeiro poligono da Africadata("World")tm_shape(World[World$continent=="Africa", ]) +tm_polygons()

Henrique Neder Programação em R (parte 2)

Page 20: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 21: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Desenhando um gra�co com o PIB per capita em quantistm_shape(World[World$continent=="Africa", ]) +tm_borders(col = NA, lwd = 1, lty = "solid", alpha = NA) +tm_legend(text.size=0.5, title.size=0.65) +tm_polygons("gdp_cap_est", style="quantile", title= "PIB percapita (US$)") + tm_style_beaver()# Recuperando os codigos de paises da Africa para utilizarno data base WDI# (World Development Indicators)names(World) Africa = World[World$continent=="Africa",]WDIsearch('HDI')dados = WDI(indicator='UNDP.HDI.XD', country='all',start=2010, end=2010)Africa@data <- rename(Africa@data, country = name)Africa@data$country = as.character(Africa@data$country)Africa@data = merge(dados, Africa@data, by="country",all.y=TRUE) summary(Africa$UNDP.HDI.XD)Henrique Neder Programação em R (parte 2)

Page 22: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Desenho o mapa do Indice de Desenvolvimento Humanotm_shape(Africa) + tm_borders(col = NA, lwd = 1, lty ="solid", alpha = NA) + tm_legend(text.size=0.5, title.size=0.65)+ tm_polygons("UNDP.HDI.XD", style="quantile", title= "Indicede Desenvolvimento Humano") + tm_style_beaver()

Henrique Neder Programação em R (parte 2)

Page 23: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 24: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

# Comparação bivariada entre PIB per capita e HDInames(World) Africa = World[World$continent=="Africa",]WDIsearch('HDI') WDIsearch('gdp.*capita.*constant')dados =WDI(indicator=c('UNDP.HDI.XD','NY.GDP.PCAP.PP.KD'),country='all', start=2010, end=2010)

Henrique Neder Programação em R (parte 2)

Page 25: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Africa@data <- rename(Africa@data, country = name)Africa@data$country = as.character(Africa@data$country)Africa@data = merge(dados, Africa@data, by="country",all.y=TRUE) summary(Africa$UNDP.HDI.XD)summary(Africa$NY.GDP.PCAP.PP.KD)install.packages(ggplot2)library(ggplot2)qplot(NY.GDP.PCAP.PP.KD, UNDP.HDI.XD , data =Africa@data, xlab = "GDP per capita, PPP", ylab = "Indice deDesenvolvimento Humano")

Henrique Neder Programação em R (parte 2)

Page 26: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Mapas no R

Henrique Neder Programação em R (parte 2)

Page 27: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

World Development Indicators

install.packages('WDI')require('WDI')WDIsearch('gdp')WDIsearch('gdp.*capita.*constant')

Henrique Neder Programação em R (parte 2)

Page 28: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

World Development Indicators

[1,] "GDPPCKD"[2,] "NY.GDP.PCAP.KD"[3,] "NY.GDP.PCAP.KN"[4,] "NY.GDP.PCAP.PP.KD"[1,] "GDPPCKD"name[1,] "GDP per Capita, constant US$, millions"[2,] "GDP per capita (constant 2000 US$)"[3,] "GDP per capita (constant LCU)"[4,] "GDP per capita, PPP (constant 2005 international $)"

Henrique Neder Programação em R (parte 2)

Page 29: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

World Development Indicators

dat = WDI(indicator='NY.GDP.PCAP.KD',country=c('MX','CA','US'), start=1960, end=2012)dathead(dat)library(ggplot2)ggplot(dat, aes(year, NY.GDP.PCAP.KD, color=country)) +geom_line() +xlab('Year') + ylab('GDP per capita')

Henrique Neder Programação em R (parte 2)

Page 30: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

World Development Indicators

Henrique Neder Programação em R (parte 2)

Page 31: Programação em R (parte 2) - UFU€¦ · Programação em R (parte 2) Henrique Neder 1 1 Instituto de Economia Universidade Federal de Uberlândia Henrique Neder Programação em

Mapas no RAlgumas bases de dados obtidas através do R

Leitura de dados da PNAD no R

Existem dois scripts do R disponíveis que fazem o download automátivo dosmicrodados da PNAD e realizam algumas análises estatísticas considerando o seudesenho de amostagem (incluindo posestrati�cação):https://github.com/ajdamico/asdfree/blob/master/Pesquisa%20Nacional%20por%20Amostra%20de%20Domicilios/download%20all%20microdata.Rhttps://github.com/ajdamico/asdfree/blob/master/Pesquisa%20Nacional%20por%20Amostra%20de%20Domicilios/pnad.survey.R

Henrique Neder Programação em R (parte 2)