Utilizando histogramas, boxplots, barplots, e gráficos de pizza, para visualizar dados.

  1. Importando dados do Excel e verificando a classe das variáveis:
library("readxl")
quest <- read_excel("C:/Users/User/Documents/Estudando/lista 3/questionário.xlsx")
str(quest)
## tibble [51 × 14] (S3: tbl_df/tbl/data.frame)
##  $ Id    : num [1:51] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Turma : chr [1:51] "A" "A" "A" "A" ...
##  $ Sexo  : chr [1:51] "F" "F" "M" "M" ...
##  $ Idade : num [1:51] 17 18 18 25 19 19 20 18 18 17 ...
##  $ Alt   : chr [1:51] "1.60" "1.69" "1.85" "1.85" ...
##  $ Peso  : chr [1:51] "60.5" "55.0" "72.8" "80.9" ...
##  $ Filhos: num [1:51] 2 1 2 2 1 3 1 1 3 2 ...
##  $ Fuma  : chr [1:51] "NAO" "NAO" "NAO" "NAO" ...
##  $ Toler : chr [1:51] "P" "M" "P" "P" ...
##  $ Exerc : num [1:51] 0 0 5 5 2 2 3 2 3 2 ...
##  $ Cine  : num [1:51] 1 1 2 2 2 1 1 2 3 2 ...
##  $ OpCine: chr [1:51] "B" "B" "M" "B" ...
##  $ TV    : num [1:51] 16 7 15 20 5 2 7 10 12 10 ...
##  $ OpTV  : chr [1:51] "R" "R" "R" "R" ...
  1. Transformando as variáveis Alt e Peso para numéricas, retirando última linha em branco, e visualizando dados:
quest1 <- transform(quest,Peso = as.numeric(Peso), Alt = as.numeric(Alt))
library(dplyr)
Quest<- slice(quest1, -51)
knitr::kable(Quest)
Id Turma Sexo Idade Alt Peso Filhos Fuma Toler Exerc Cine OpCine TV OpTV
1 A F 17 1.60 60.5 2 NAO P 0 1 B 16 R
2 A F 18 1.69 55.0 1 NAO M 0 1 B 7 R
3 A M 18 1.85 72.8 2 NAO P 5 2 M 15 R
4 A M 25 1.85 80.9 2 NAO P 5 2 B 20 R
5 A F 19 1.58 55.0 1 NAO M 2 2 B 5 R
6 A M 19 1.76 60.0 3 NAO M 2 1 B 2 R
7 A F 20 1.60 58.0 1 NAO P 3 1 B 7 R
8 A F 18 1.64 47.0 1 SIM I 2 2 M 10 R
9 A F 18 1.62 57.8 3 NAO M 3 3 M 12 R
10 A F 17 1.64 58.0 2 NAO M 2 2 M 10 R
11 A F 18 1.72 70.0 1 SIM I 10 2 B 8 N
12 A F 18 1.66 54.0 3 NAO M 0 2 B 0 R
13 A F 21 1.70 58.0 2 NAO M 6 1 M 30 R
14 A M 19 1.78 68.5 1 SIM I 5 1 M 2 N
15 A F 18 1.65 63.5 1 NAO I 4 1 B 10 R
16 A F 19 1.63 47.4 3 NAO P 0 1 B 18 R
17 A F 17 1.82 66.0 1 NAO P 3 1 B 10 N
18 A M 18 1.80 85.2 2 NAO P 3 4 B 10 R
19 A F 20 1.60 54.5 1 NAO P 3 2 B 5 R
20 A F 18 1.68 52.5 3 NAO M 7 2 B 14 M
21 A F 21 1.70 60.0 2 NAO P 8 2 B 5 R
22 A F 18 1.65 58.5 1 NAO M 0 3 B 5 R
23 A F 18 1.57 49.2 1 SIM I 5 4 B 10 R
24 A F 20 1.55 48.0 1 SIM I 0 1 M 28 R
25 A F 20 1.69 51.6 2 NAO P 8 5 M 4 N
26 A F 19 1.54 57.0 2 NAO I 6 2 B 5 R
27 B F 23 1.62 63.0 2 NAO M 8 2 M 5 R
28 B F 18 1.62 52.0 1 NAO P 1 1 M 10 R
29 B F 18 1.57 49.0 2 NAO P 3 1 B 12 R
30 B F 25 1.65 59.0 4 NAO M 1 2 M 2 R
31 B F 18 1.61 52.0 1 NAO P 2 2 M 6 N
32 B M 17 1.71 73.0 1 NAO P 1 1 B 20 R
33 B F 17 1.65 56.0 3 NAO M 2 1 B 14 R
34 B F 17 1.67 58.0 1 NAO M 4 2 B 10 R
35 B M 18 1.73 87.0 1 NAO M 7 1 B 25 B
36 B F 18 1.60 47.0 1 NAO P 5 1 M 14 R
37 B M 17 1.70 95.0 1 NAO P 10 2 M 12 N
38 B M 21 1.85 84.0 1 SIM I 6 4 B 10 R
39 B F 18 1.70 60.0 1 NAO P 5 2 B 12 R
40 B M 18 1.73 73.0 1 NAO M 4 1 B 2 R
41 B F 17 1.70 55.0 1 NAO I 5 4 B 10 B
42 B F 23 1.45 44.0 2 NAO M 2 2 B 25 R
43 B M 24 1.76 75.0 2 NAO I 7 0 M 14 N
44 B F 18 1.68 55.0 1 NAO P 5 1 B 8 R
45 B F 18 1.55 49.0 1 NAO M 0 1 M 10 R
46 B F 19 1.70 50.0 7 NAO M 0 1 B 8 R
47 B F 19 1.55 54.5 2 NAO M 4 3 B 3 R
48 B F 18 1.60 50.0 1 NAO P 2 1 B 5 R
49 B M 17 1.80 71.0 1 NAO P 7 0 M 14 R
50 B M 18 1.83 86.0 1 NAO P 7 0 M 20 B
  1. Verificando o número e os nomes das variáveis:
dim(Quest) 
## [1] 50 14
names(Quest)
##  [1] "Id"     "Turma"  "Sexo"   "Idade"  "Alt"    "Peso"   "Filhos" "Fuma"  
##  [9] "Toler"  "Exerc"  "Cine"   "OpCine" "TV"     "OpTV"
  1. Construindo histograma das variáveis peso e altura, com frequência absoluta:
  1. Histograma para Altura (H.A.A):
attach(Quest)
H.A.A<- hist(Alt, breaks = (3), col="magenta" , border="darkblue",
            xlab="Altura dos Estudantes", ylab="Estudantes",
            xlim=c(1.3,2.0), ylim=c(0,25),
            main="Histograma da Altura (Freq. Absoluta)")

  1. Histograma para Peso (H.P.A):
attach(Quest)
H.P.A<- hist(Peso, breaks = (7), #Pela Regra de Sturges, breaks=7
           col="magenta" , border="darkblue",#personalizando as cores
          xlab="Peso dos Estudantes", ylab="Estudantes (Freq. Absoluta)",
          xlim=c(40,100), ylim=c(0,25), #dimensão do eixo x e y
          main="Histograma do Peso (Freq. Absoluta)")

  1. Construindo histograma das variáveis peso e altura, com frequência relativa:
  1. Histograma para Altura (H.A.R):
attach(Quest)
H.A.R<- hist(Alt, breaks = (3), freq = FALSE, col="magenta" , border="darkblue",
           xlab="Altura dos Estudantes", ylab="Estudantes",
           xlim=c(1.3,2.0), ylim=c(0,6),
           main="Histograma da Altura (Freq. Relativa)")

  1. Histograma para Peso (H.P.R):
attach(Quest)
H.P.R<- hist(Peso, breaks = (7), freq = FALSE, col="magenta" , 
             border="darkblue", 
             xlab="Peso dos Estudantes", ylab="Estudantes (Freq. Relativa)",
             xlim=c(40,100), ylim=c(0.000,0.050), 
             main="Histograma do Peso (Freq. Relativa)")

  1. Adicionando curva de distribuição normal ao histograma do ponto 5:
  1. Histograma para Altura com curva de distribuição normal:
attach(Quest)
H.A.R.N<- hist(Alt, breaks = (3), freq = FALSE, col="magenta" , border="darkblue",
             xlab="Altura dos Estudantes", ylab="Estudantes (Freq. Relativa)",
             xlim=c(1.3,2.0), ylim=c(0,6),
             main="Histograma da Altura")
  #Curva de distribuição normal para Altura:
curve(dnorm(x, mean=mean(Alt), sd=sd(Alt)), add=TRUE, col="darkblue", lwd=2)
#Legenda para a curva:
legend(x="topright", "Curva de Dist. Normal", col="darkblue", lty= 1, lwd=2)

  1. Histograma para Peso com curva de distribuição normal:
attach(Quest)
## The following objects are masked from Quest (pos = 3):
## 
##     Alt, Cine, Exerc, Filhos, Fuma, Id, Idade, OpCine, OpTV, Peso,
##     Sexo, Toler, Turma, TV
## The following objects are masked from Quest (pos = 4):
## 
##     Alt, Cine, Exerc, Filhos, Fuma, Id, Idade, OpCine, OpTV, Peso,
##     Sexo, Toler, Turma, TV
## The following objects are masked from Quest (pos = 5):
## 
##     Alt, Cine, Exerc, Filhos, Fuma, Id, Idade, OpCine, OpTV, Peso,
##     Sexo, Toler, Turma, TV
## The following objects are masked from Quest (pos = 6):
## 
##     Alt, Cine, Exerc, Filhos, Fuma, Id, Idade, OpCine, OpTV, Peso,
##     Sexo, Toler, Turma, TV
## The following objects are masked from Quest (pos = 7):
## 
##     Alt, Cine, Exerc, Filhos, Fuma, Id, Idade, OpCine, OpTV, Peso,
##     Sexo, Toler, Turma, TV
H.P.R.N<- hist(Peso, breaks = (7), freq = FALSE, col="magenta" , border="darkblue",
             xlab="Peso dos Estudantes", ylab="Estudantes (Freq. Relativa)",
             xlim=c(40,100), ylim=c(0.000,0.055),
             main="Histograma do Peso")
  #Curva de distribuição normal para Peso:
curve(dnorm(x, mean=mean(Peso), sd=sd(Peso)), add=TRUE, col="darkblue", lwd=2)
  #Legenda para a curva:
legend(x="topright", "Curva de Dist. Normal", col="darkblue", lty= 1, lwd=2)

  1. Posição da média nos histogramas do ponto 5:
  1. Histograma para Altura com Posição da Média:
attach(Quest)
H.A.R.M<- hist(Alt, breaks = (3), freq = FALSE, col="magenta" , border="darkblue",
               xlab="Altura dos Estudantes", ylab="Estudantes (Freq. Relativa)",
               xlim=c(1.3,2.0), ylim=c(0,6),
               main="Histograma da Altura")
  #Curva de distribuição normal para Altura:
curve(dnorm(x, mean=mean(Alt), sd=sd(Alt)), add=TRUE, col="darkblue", lwd=2)
  #Posição da média:
abline(v=median(Alt), col="green",lty= 2, lwd=2)
  #Legenda para a curva:
legend(x="topright", c("Curva de Dist. Normal", "Média"), 
       col=c("darkblue", "green"), lty= c(1,2), lwd=c(2,2))

  1. Histograma para Peso com Posição da Média:
attach(Quest)
H.P.R.M<- hist(Peso, breaks = (7), freq = FALSE, col="magenta" , border="darkblue",
               xlab="Peso dos Estudantes", ylab="Estudantes (Freq. Relativa)",
               xlim=c(40,100), ylim=c(0.000,0.050), main="Histograma do Peso")
  #Curva de distribuição normal para Peso:
curve(dnorm(x, mean=mean(Peso), sd=sd(Peso)), add=TRUE, col="darkblue", lwd=2)
#Posição da média:
abline(v=median(Peso), col="green",lty= 2, lwd=2)
#Legenda para a curva:
legend(x="topright", c("Curva de Dist. Normal", "Média"),  
       col=c("darkblue", "green"), lty= c(1,2), lwd=c(2,2))

  1. Construindo boxplot das variáveis peso e altura:

i)Boxplot do Peso:

attach(Quest)
B.P<- boxplot(Peso, main = "Boxplot do Peso dos Estudantes", ylab = "Peso",
        col = "midnightblue", border = "violetred2")

  1. Boxplot da Altura:
attach(Quest)
B.P<- boxplot(Alt, main = "Boxplot da Altura dos Estudantes", ylab = "Altura", 
              col = "midnightblue", border = "violetred2")

  1. Construindo boxplot de peso por sexo:
attach(Quest)
boxplot(Peso ~ Sexo, main = "Peso de acordo com o gênero", ylab = "Peso", 
        xlab = "Gênero", names = c("Feminino","Masculino"), col = "midnightblue", 
        border = "violetred2")

  1. Construindo boxplot da altura por OpTV(opinião sobre qualidade da programação na TV):
cores<- colorRampPalette(c("lightblue", "lightgreen")) #Escolhendo as cores

boxplot(Alt ~ OpTV, main = "Boxplot da Altura e OpTV", ylab = "Altura", 
        xlab = "Opinião sobre qualidade da programação de TV (OpTV)", 
        names = c("Boa", "Média", "Não Sabe","Ruim"), 
        col = cores(4), #Cores em degradê
        border = "darkgrey")

  1. Construindo barplot da variável OpTV:
attach(Quest)
cores1<- colorRampPalette(c("purple4", "magenta2")) #Escolhendo as cores
OPTV<- table(OpTV)
barplot(OPTV, col = cores1(4), ylab = "Estudantes", xlab = "OPTV",
        names = c("Boa", "Média", "Não Sabe","Ruim"), 
        main = "Barplot da Opinião Sobre Qualidade da Programação de TV (OPTV)")

  1. Construindo um barplot das variáveis Fuma e OpTV:
attach(Quest)
cores2<- colorRampPalette(c("pink2", "lightblue")) #Escolhendo as cores
FumaeOPTV<- table(Fuma,OpTV)
FumaeOPTV #analisando os dados para o barplot
##      OpTV
## Fuma   B  M  N  R
##   NAO  3  1  5 35
##   SIM  0  0  2  4
barplot(FumaeOPTV, col = cores2(2), beside=T, ylab = "Estudantes",
        xlab = "Fumantes e Opinião Sobre Qualidade da Programação de TV",
        names = c("Boa", "Média", "Não Sabe","Ruim"), 
        main = "Barplot de Estudantes Fumantes e OPTV",
        ylim=c(0,49)) #Aumentando distância para acrescentar legenda
legend(x="topright", c("Não Fuma", "Fuma"), col= cores2(2), 
       lty= c(1,1), lwd=c(3,3))

  1. Construindo gráficos de pizza das variáveis: FUMA, Toler, Optv:
library(plotrix) 
  1. Gráfico de Fumantes:
attach(Quest)
cores3<- colorRampPalette(c("pink2", "lightblue"))#cores do fráfico
dados.fuma<-table(Fuma)
vetor.fuma<- round(dados.fuma/sum(dados.fuma)*100) # vetor de proporções
rot.fuma=c("Não", "Sim") #rótulos
rot.fuma1<- paste(rot.fuma, vetor.fuma) #rotulo e %
rot.fuma2<- paste(rot.fuma1,"%",sep="") #acrescentando % ao rótulo
porc.fuma<-paste(vetor.fuma,"%",sep="")
pie3D(vetor.fuma,labels=rot.fuma2,
      col=cores3(2), # cor
      explode=0.25, # fatias
      labelcex=1.5, #fonte do rótulo
      main= "Gráfico de Estudantes Fumantes")

  1. Gráfico de Tolerância ao Cigarro:
attach(Quest)
cores4<- colorRampPalette(c("orange2", "red4","purple4"))#cores do gráfico
dados.toler<-table(Toler)
vetor.toler<- round(dados.toler/sum(dados.toler)*100) # vetor de proporções
rot.toler=c("Indiferente", "Incomoda Muito", "Incomoda Pouco") #rótulos
rot.toler1<- paste(rot.toler, vetor.toler) #rótulo e porcentagem
rot.toler2<- paste(rot.toler1,"%",sep="") #% ao rótulo
porcent.toler<-paste(vetor.toler,"%",sep="")
pie3D(vetor.toler,labels=rot.toler2,
      col=cores4(3), #cor
      explode=0.25, #fatias
      labelcex=1, #fonte do rótulo
      main= "Gráfico de Tolerância ao Cigarro")

  1. Gráfico da Opinião Sobre Qualidade da Programação de TV (OPTV):
attach(Quest)
cores5<- colorRampPalette(c("lightblue", "blue", "magenta3", "purple3"))
                                                      #cores do gráfico
dados.OPTV<-table(OpTV)
vetor.OPTV<- round(dados.OPTV/sum(dados.OPTV)*100) #vetor de proporções
rot.OPTV=c("Boa", "Média", "Não Sabe","Ruim") #rótulos
rot.OPTV1<- paste(rot.OPTV, vetor.OPTV) #rótulo e porcentagem
rot.OPTV2<- paste(rot.OPTV1,"%",sep="") # % ao rótulo
porcent.OPTV<-paste(vetor.OPTV,"%",sep="")
pie3D(vetor.OPTV,labels=rot.OPTV2,
      col=cores5(4), #cor
      explode=0.25, #fatias
      labelcex=1.2, #fonte do rótulo
      main= "Gráfico da Opinião Sobre Qualidade da Programação de TV")