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”.
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:
Tetrahydrocortisone
Pregnanetriol
Type
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”.
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.
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!