#==========================================================================================
# Aula 5 da disciplina ce223 (18/03/2011)
# Estatísticas descritivas separados por categoria e subconjuntos
#                                                               Professor Walmes M. Zeviani
#                                                                     www.leg.ufpr.br/ce223
#==========================================================================================

#------------------------------------------------------------------------------------------
# vamos falar um pouco da [R-br]

curve(dnorm(x), -4, 4, col=2, lwd=2)
text(0, dnorm(0)/2, label="Vamos falar\n um pouco da\n [R-br]?", cex=5)

#------------------------------------------------------------------------------------------
# importa dados do arquivo externo

km <- read.table("http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/ipeadata%5b11-03-2011-09-24%5d.csv",
                 header=TRUE, dec=",", sep=";")
names(km) <- c("sig","cod","mun","km","naosei")
str(km)

#------------------------------------------------------------------------------------------
# calculando valores das estatísticas separando por estado

tapply(km$km, km$sig, mean, na.rm=TRUE)
with(km, tapply(km, sig, mean, na.rm=TRUE))

#------------------------------------------------------------------------------------------
# número de municípios por estado

with(km, tapply(km, sig, length))

#------------------------------------------------------------------------------------------
# mediana por estado

with(km, tapply(km, sig, median, na.rm=TRUE))

#------------------------------------------------------------------------------------------
# calcular variância por estado. variância amostral (n-1) ou populacional?

var.pop <- function(amostra){
  am <- na.exclude(amostra)
  n <- length(am)
  var(am)*(n-1)/n
}

with(km, tapply(km, sig, var.pop))

#------------------------------------------------------------------------------------------
# como criar subconjuntos do conjunto de dados original?
# selecionando apenas os municípios do Mato Grosso do Sul!

MS <- km[km$sig=="MS"]
str(MS)

MS <- subset(km, sig=="MS")
str(MS)

#------------------------------------------------------------------------------------------
# criar um subconjunto apenas com os estados do sul

SUL <- subset(km, sig%in%c("PR","SC","RS"))
str(SUL)

SUL[sample(nrow(SUL), 10),]

# RS não consta na base de dados!! veja

levels(km$sig)

#------------------------------------------------------------------------------------------
# criar um subconjunto apenas com distâncias maiores ou iguais à 200 km

M200 <- subset(km, km>=200)

#------------------------------------------------------------------------------------------
# criar um subconjunto apenas com distâncias maiores que 100 km e menores que 300 km

e100e300 <- subset(km, km>100 & km<300)
range(e100e300$km)
plot(e100e300$km)

#------------------------------------------------------------------------------------------
# criar um subconjunto apenas com estados que tem a letra "A" na sigla

siglaA <- km[grep("A", km$sig),]
str(siglaA)

siglaA[sample(nrow(siglaA), 10),]
unique(siglaA$sig)

#------------------------------------------------------------------------------------------
# municípios com o termo "São" no nome

munSão <- km[grep("São", km$mun),]
str(munSão)

munSão[sample(nrow(munSão), 10),]
munSão[duplicated(munSão$mun),]

subset(munSão, mun=="São Carlos")

#------------------------------------------------------------------------------------------
