Introdução

Será mostrado como fazer Boxplot utlizando o pacote “ggplot2”.Ggpplot2 é um pacote do R para visualização de dados. Combinado com o shinydashboard você consegue fazer dashboards muito profissionais.

Vamos usar o data frame “Cushing” do pacote “MASS”. É um data frame que contém testes diagnósticos em pacientes com síndrome de Cushing. As observações são taxas de excreção urinária de dois metabólitos .

Para saber mais sobre esses dados basta digitar no console do RSTUDIO ?Cushings após ter baixado o pacote “MASS”.

Conhecendo mais os tipos de dados

Primeiro será verificado como estão dispostos os dados visualizando as 5 primeiras linhas:

library(MASS)
head(Cushings)
##    Tetrahydrocortisone Pregnanetriol Type
## a1                 3.1         11.70    a
## a2                 3.0          1.30    a
## a3                 1.9          0.10    a
## a4                 3.8          0.04    a
## a5                 4.1          1.10    a
## a6                 1.9          0.40    a

Observe que há 27 linhas e 3 colunas:

Onde as duas primeiras colunas descrevem taxas de secreção urinária e a variável “Type” descreve o tipo de sindrome

Agora vamos ver a estrutura dos dados:

library(dplyr)
glimpse(Cushings)
## Observations: 27
## Variables: 3
## $ Tetrahydrocortisone <dbl> 3.1, 3.0, 1.9, 3.8, 4.1, 1.9, 8.3, 3.8, 3....
## $ Pregnanetriol       <dbl> 11.70, 1.30, 0.10, 0.04, 1.10, 0.40, 1.00,...
## $ Type                <fctr> a, a, a, a, a, a, b, b, b, b, b, b, b, b,...

Repare que as duas primeiras variáveis são numéricas, no caso contínuas e a terceira é uma variável categórica do tipo “factor”.

Resumo estatistico

Vamos fazer um resumo das variáveis:

summary(Cushings)
##  Tetrahydrocortisone Pregnanetriol    Type  
##  Min.   : 1.90       Min.   : 0.040   a: 6  
##  1st Qu.: 3.85       1st Qu.: 0.400   b:10  
##  Median : 7.80       Median : 1.000   c: 5  
##  Mean   :10.46       Mean   : 2.242   u: 6  
##  3rd Qu.:12.95       3rd Qu.: 2.800         
##  Max.   :53.80       Max.   :11.700

A função “summary” forneceu:

  • resumo dos 5 números e a média nas duas primeiras colunas, pois são variáveis continuas

  • a frequência na terceira coluna pois se trata de uma variável nominal.

Pode-se também olhar a dispersão de cada variável numérica usando o desvio padrão:

desv_p <- lapply(Cushings[,1:2], sd)
desv_p
## $Tetrahydrocortisone
## [1] 10.77241
## 
## $Pregnanetriol
## [1] 2.969508

Acima foi usado a função “lapply”. Ela substitui o “loop for” de forma elegante pois precisa de apenas uma linha de código, além do que é muito mais rápido computacionalmente falando.

Boxplot

Vamos fazer o Boxplot usando a variável “Type” no eixo horizontal e a variável “Tetrahydrocortisone” na vertical:

library(ggplot2)
ggplot(Cushings, aes(x=Type, y=Tetrahydrocortisone))+
  geom_boxplot() 

Pode-se melhorar isso colocando título e cor nos Boxplots:

ggplot(Cushings, aes(x=Type, y=Tetrahydrocortisone, fill=Type))+
  geom_boxplot() + 
ggtitle('Taxa de excreção urinária (mg / 24h) de Tetra Hidrocortisona')

Observe que ficou fácil de comparar os tipos de sindrome e os possíveis “outliers”.

Fazendo a mesma coisa, agora com a variável “Pregnanetriol” na vertical:

ggplot(Cushings, aes(x=Type, y=Pregnanetriol, fill=Type))+
  geom_boxplot() + 
ggtitle('Taxa de excreção urinária (mg / 24h) de Pregnanetriol')

Percebe-se que com o boxplot ficou intuituivo comparar o comportamento distinto em relação ao tipo de excreção urinária.

Era isso. Espero que tenha aprendido um pouco mais sobre o ggplot2.

Keep calm and analysing data!