#========================================================================================== # Estatística Computacional I www.leg.ufpr.br/ce083 # Curso de Estatística - 2013/1 # Prof. Walmes Zeviani # LEG - DEST - UFPR # # Aula 12 (28/05/2013) # * Junção de tabelas de dados (merge); # * Tabelas de frequência; # * Gráficos de frequência e anotações de texto no gráfico; # * Gráfico de segmentos, média e amplitude; # * Reordenação de níveis de um fator; #========================================================================================== #------------------------------------------------------------------------------------------ # Definições da sessão. require(gdata) #------------------------------------------------------------------------------------------ # Dados de esporte olímpico. # (Amanda JC) # http://www.leg.ufpr.br/~walmes/ensino/ce083-2013-01/Matriz_Bolsa_Atleta_Olímpico.xlsx list.files() list.files(pattern=".xls") system("file -bi Matriz_Bolsa_Atleta_Olímpico.xlsx") eo <- read.xls("Matriz_Bolsa_Atleta_Olímpico.xlsx", header=TRUE, sheet=1, fileEncoding="utf-8", stringsAsFactors=FALSE) str(eo) unique(eo$Valor) unique(eo$Ano) # remove os ".00" x <- gsub("\\.00", "", eo$Valor) unique(x) # remove o que não é número x <- gsub("\\D*", "", x) unique(x) eo$Valor <- as.numeric(x) str(eo) #------------------------------------------------------------------------------------------ names(eo) <- c("mod","nome","nivel","cid","uf","sx", "reg","ano","val","oli") #------------------------------------------------------------------------------------------ unique(eo$mod) tb <- table(eo$mod) barplot(tb) par(las=3, mar=c(10,4,2,2)) barplot(tb) barplot(sort(tb)) abline(h=seq(0,1200,100), lty=3) par(las=3, mar=c(12,4,2,2)) stb <- sort(tb) bp <- barplot(stb, ylim=c(0,1500)) text(bp, stb, stb, srt=90, adj=-0.15) par(las=0) mtext(side=1, text="Modalidade", line=10) mtext(side=2, text="Número de bolsas entre 2005 e 2011", line=2.5) #------------------------------------------------------------------------------------------ par(las=3, mar=c(12,4,2,2)) sb <- tapply(eo$val, eo$mod, sum) barplot(sb) barplot(sort(sb)) sb <- tapply(eo$val, eo$mod, mean) barplot(sort(sb)) #------------------------------------------------------------------------------------------ seo <- subset(eo, ano<=2007) str(seo) apm <- with(seo, aggregate(cbind(val), list(mun=cid), length)) str(apm) #------------------------------------------------------------------------------------------ system("file -bi renda.xls") ren <- read.xls("renda.xls", sheet=1, header=TRUE, fileEncoding="latin1", #encoding="utf-8", stringsAsFactors=FALSE) str(ren) names(ren) <- c("sig","cod","mun","a1970","a1980","a1991") #------------------------------------------------------------------------------------------ reneo <- merge(ren, apm, by="mun") str(reneo) #------------------------------------------------------------------------------------------ plot(val~a1991, data=reneo) with(reneo, identify(a1991, val, mun)) #------------------------------------------------------------------------------------------ # Verificar ainda a relação com a população dos habitantes e idh. #------------------------------------------------------------------------------------------ # Dados de acidentes de trânsito. # (Dissertação Vanessa S). # http://www.leg.ufpr.br/~walmes/ensino/ce083-2013-01/acidentes2010-01.csv list.files() system("file -bi acidentes2010-01.csv") ac <- read.table("acidentes2010-01.csv", header=TRUE, sep=";", fileEncoding="utf-8", stringsAsFactors=FALSE) str(ac) #------------------------------------------------------------------------------------------ # Fazer tabelas de frequência para tentar identificar quais os níveis de cada fator # estão mais associados à acidentes de trânsito. #------------------------------------------------------------------------------------------ # Gráfico de segmentos com média e amplitude. help(by, help_type="html") tmp <- with(ren, by(ren, sig, function(x){ x <- na.omit(x$a1991) c(min=min(x), m=mean(x), max=max(x)) })) tmp tmp <- as.data.frame(do.call(rbind, tmp)) tmp$sig <- factor(rownames(tmp)) require(latticeExtra) help(segplot, help_type="html") segplot(sig~min+max, centers=m, horizontal=TRUE, data=tmp, draw.bands=FALSE, segments.fun=panel.arrows, ends="both", angle=90, length=1, unit="mm") segplot(sig~min+max, centers=m, horizontal=FALSE, data=tmp, draw.bands=FALSE, segments.fun=panel.arrows, ends="both", angle=90, length=1, unit="mm") #------------------------------------------------------------------------------------------ # Obtendo a região geográfica pelo nome do Estado. dput(levels(tmp$sig)) # Estados e suas regiões geográficas. erg <- data.frame(sig=c("AC","AM","AP","PA","RO","RR", # norte "AL","BA","CE","MA","PB","PE","PI","RN","SE", # nordeste "MT","MS","GO","DF","TO", # centro-oeste "SP","RJ","MG","ES", # sudeste "PR","SC","RS"), # sul reg=c(rep("N",6), rep("NE",9), rep("CO",5), rep("SE",4), rep("S",3))) str(erg) erg ren$reg <- erg$reg[match(ren$sig, erg$sig)] # Colocando nova ordem para os níveis de região e sigla ren$sig <- factor(ren$sig, levels=c("AC","AM","AP","PA","RO","RR", "AL","BA","CE","MA","PB","PE","PI","RN","SE", "MT","MS","GO","DF","TO", "SP","RJ","MG","ES", "PR","SC","RS")) ren$reg <- factor(ren$reg, levels=c("N","NE","CO","SE","S")) bwplot(a1991~sig|reg, data=ren) bwplot(a1991~sig|reg, data=ren, scales=list(x="free")) #------------------------------------------------------------------------------------------