# ### Lendo banco de dados ### library(fdth) # bd <-read.table(file="BancoDados_aulas_04a06.txt", dec=",", header=TRUE, sep=";") bd dim(bd) names(bd) # # Conferindo a classe das variáveis str(bd) bd$nivel_educ<-factor(bd$nivel_educ) bd$peso<-as.numeric(bd$peso) bd$altura<-as.numeric(bd$altura) bd$idade<-as.numeric(bd$idade) bd$fumante<-factor(bd$fumante) bd$genero<-factor(bd$genero) str(bd) # A variável ní­vel educacional está codificada em números. Vou mudar os # números para palavras. Assim o gráfico fica compreensível. # bd$nivel_educ <- bd$nivel_educ bd$nivel_educ<- ifelse(bd$nivel_educ==1,gsub('1', "Ens.Fund.Inc", bd$nivel_educ), ifelse(bd$nivel_educ=='2', gsub('2', "Ens.Fund", bd$nivel_educ), ifelse(bd$nivel_educ=='3', gsub('3', "Ens.Medio", bd$nivel_educ), ifelse(bd$nivel_educ=='4', gsub('4', "Ens.Superior", bd$nivel_educ),'0')))) bd$nivel_educ table(bd$nivel_educ) # # Gráfico de barras e setores (slide 11) # barplot(table(bd$nivel_educ)[c(2,1,3,4)], main="Ní­vel Educacional", ylab="Frequência") # # Gráfico de setores (pizza) # o comando table fornece as frequências da variável. Ordenei como '2,1,3,4' pra manter a # ordenação natural e não ficar em ordem alfabática. As cores tem uma palheta cinza em que # a cor mais clara está associada ao 1 e a cor mais escura corresponde ao 0.25. # pie(table(bd$nivel_educ)[c(2,1,3,4)], labels=c('Ens.Fund.Inc', 'Ens.Fund', 'Ens.Medio', 'Ens.Superior'),main="Ní­vel Educacional", col= gray( c(1, 0.75, 0.5, 0.25)), clockwise=TRUE ) # # Histograma (slide 12) # hist(bd$peso, xlab="Peso (Kg)", breaks= 7, ylab="Frequência", main="Histograma") # Histograma somente para mulheres peso0<-bd[bd$genero==0,] hist(peso0$peso, xlab="Peso (Kg)", breaks= 6,ylab="Frequência", main="Histograma") # # Boxplot (slide 13) # boxplot(bd$peso, main="Peso (Kg)") boxplot(bd$peso~bd$genero, main="Peso (Kg)") # summary(bd$peso) quantile(bd$peso) sd(bd$peso) # tapply(bd$peso, bd$genero, summary) # # Tabela Fumante vs Gênero (slide 14) # addmargins(table(bd$fumante, bd$genero)) # # Gráfico de dispersão Peso vs Altura (slide 15) # plot(bd$"altura", bd$"peso", xlab="Altura(cm)", ylab="Peso(kg)", main="Peso vs Altura") # plot(bd$"altura"[-which.max(bd$peso)], bd$"peso"[-which.max(bd$peso)], xlab="Altura(cm)", ylab="Peso(kg)", main="Peso vs Altura (sem outlier)") # # Slide 22 par(mfrow=c(1,2)) # droga1<- as.data.frame(cbind(c(rep('Sem trat.',100), rep('Com trat.', 100)), c( rnorm(100, mean=20, sd=2), rnorm(100, mean=10, sd=2.5) ) )) names(droga1) <- c("trat", "exp") droga1$trat <- as.factor(droga1$trat) droga1$exp <- as.numeric(droga1$exp) boxplot(exp~trat, data=droga1, main="Droga 1") # droga2<- as.data.frame(cbind(c(rep('Sem trat.',100), rep('Com trat.', 100)), c( rnorm(100, mean=25, sd=1.5), rnorm(100, mean=7, sd=1) ) )) names(droga2) <- c("trat", "exp") droga2$trat <- as.factor(droga2$trat) droga2$exp <- as.numeric(droga2$exp) boxplot(exp~trat, data=droga2, main="Droga 2") # # Ogiva Peso # tab=fdt(bd$peso,start=40,h=10,end=110) print(tab, xlab="Peso(kg)") plot(tab, xlab="Peso(kg)",ylab="Frequência") plot(tab,type='cfp', xlab="Peso(kg)",ylab="Freq. Acumulada") # peso = bd$peso breaks = seq(40, 110, by=10) # controla o número de classes peso.cut = cut(peso, breaks, right=FALSE) peso.freq = table(peso.cut) # # Vamos calcular a frequência acumulada com cumsum, adicionar um elemento # zero e fazer o gráfico. cumfreq0 = c(0, cumsum(peso.freq)) plot(breaks, cumfreq0, # plot the data xlab="Peso (kgs)", # x-axis label ylab="Porcentagem acumulada") # y-axis label lines(breaks, cumfreq0) # join the points # # Slide 24 par(mfrow=c(1,1)) tec_cir <- as.data.frame(cbind(c(rep("A", 100), rep("B", 100), rep("C", 100)),c(rnorm(100, mean=6.5, sd=3), rnorm(100, mean=9,sd=0.8), rnorm(100, mean=7.2,sd=1.75)))) names(tec_cir) <- c("tec", "tempo") tec_cir$tec <- as.factor(tec_cir$tec) tec_cir$tempo <- as.numeric(tec_cir$tempo) boxplot(tempo~tec, data=tec_cir, xlab="Técnica cirúrgica", ylab="Tempo de recuperaçãp (dias)", main="Técnicas cirúrgicas segundo tempo de recuperação") # # Slide 25 par(mfrow=c(1,2)) # set.seed(2500) obj <- rnorm(1000, 40, 30) hist(obj[which(obj>30 & obj< 50)], xlab="Salários Mí­nimos", main="Empresa A", ylab="Densidade",freq=FALSE) # # set.seed(1006) # hist(runif(100,30,50), xlab="Salários Mí­nimos", main="Empresa A", ylab="Densidade",freq=FALSE) # amostra_exp = rexp(100,1/10) amostra <- amostra_exp[amostra_exp<40] + 30 hist(amostra, xlab="Salários Mí­nimos", main="Empresa B", ylab="Densidade", freq=FALSE) # # # Dados Grupados # install.packages('fdth') library(fdth) # Exemplo x=c(143,151,152,159,rep(160,10),167,rep(168,17),175,rep(177,9),183,rep(185,8),191) # tab=fdt(x, start=143,h=8,end=191) print(tab) # Class limits f rf rf(%) cf cf(%) # [143,151) 1 0,02 1,92 1 1,92 # [151,159) 2 0,04 3,85 3 5,77 # [159,167) 11 0,21 21,15 14 26,92 # [167,175) 18 0,35 34,62 32 61,54 # [175,183) 10 0,19 19,23 42 80,77 # [183,191) 9 0,17 17,31 51 98,08 plot(tab) plot(tab,type='cfp') # tab=fdt(bd$peso,start=40,h=8,end=110) print(tab)