Você está na página 1de 4

ME115 - Linguagem R

Atividade 4

Os exercícios de 1 a XX são da Seção 4.9 do Livro: https://rafalab.github.io/dsbook/tidyverse.html


Usaremos o conjunto de dados coletados pelo NCHS (United States National Center for Health Statistics).
Desde 1999, cerca de 5 mil indivíduos de todas as idades são entrevistados todos os anos. Parte desses dados
está disponível através do pacote NHANES. Após instalar o pacote, você pode carregar os dados da seguinte
maneira:
install.packages("dplyr")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/3.6'


## (as 'lib' is unspecified)
library(dplyr)

##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(NHANES)
data(NHANES)

O conjunto de dados tem muitos dados faltantes. As funções mean e sd, por exemplo, retornam NA sempre
que pelo menos um dos elementos do vetor de entrada contenha dados faltantes, representados por NA no R.
Segue um exemplo:
library(dslabs)
data(na_example)
mean(na_example)

## [1] NA
sd(na_example)

## [1] NA
Para ignorar os NAs e calcular a estatísticas usando os dados restantes, use o argumento na.rm:
mean(na_example, na.rm = TRUE)

## [1] 2.301754
sd(na_example, na.rm = TRUE)

## [1] 1.22338

1
1. Algumas informações sobre pressão arterial. Primeiro, vamos selecionar um grupo para ser a referência:
mulheres de 20 a 29 anos. A variável categórica AgeDecade contém a faixa etária de cada indivíduo no
estudo. Repare que a codificação usada tem um espaço antes da faixa etária, por exemplo: " 20-29".
Qual é a média e o desvio padrão da pressão arterial sistólica (BPSysAve) para o grupo referência? Salve
essas informações em uma variável chamada ref.
Dica: Use filter, summarize e o argumento na.rm = TRUE. Outra opção é usar filter para também excluir
valores NA’s.
# coloque sua resposta aqui
ref <- NHANES %>% filter(AgeDecade == " 20-29" & Gender == "female") %>% summarize(media=mean(BPSysAve,n
ref

## # A tibble: 1 x 2
## media desvio_padrao
## <dbl> <dbl>
## 1 108. 10.1
2. Usando “pipe”, crie a variável numérica ref_avg e aloque o resultado da média. Dica: Use pull.
# coloque sua resposta aqui
ref_avg <- NHANES %>%
filter(AgeDecade == " 20-29" & Gender == "female") %>%
summarize(media = mean(BPSysAve, na.rm = TRUE),
desvio_padrao = sd(BPSysAve, na.rm=TRUE)) %>%
pull(desvio_padrao)
ref_avg

## [1] 10.14668
3. Reporte os valores mínimo e máximo de pressão arterial sistólica para o grupo referência.
# coloque sua resposta aqui
NHANES %>%
filter(AgeDecade == " 20-29" & Gender == "female") %>% summarize(minimo=min(BPSysAve,na.rm=TRUE),

## # A tibble: 1 x 2
## minimo maximo
## <int> <int>
## 1 84 179
4. Calcule a média e o desvio padrão da pressão arterial sistólica para mulheres, mas para cada faixa
etária separadamente. Repare que as faixas etárias estão registradas na variável AgeDecade. Dica: filtre
por Gender e use group_by.
# coloque sua resposta aqui
NHANES %>%
filter(Gender == "female") %>% group_by(AgeDecade) %>% summarize(media=mean(BPSysAve,na.rm=TRUE),d

## Warning: Factor `AgeDecade` contains implicit NA, consider using


## `forcats::fct_explicit_na`
## # A tibble: 9 x 3
## AgeDecade media desvio_padrao
## <fct> <dbl> <dbl>
## 1 " 0-9" 100. 9.07
## 2 " 10-19" 104. 9.46
## 3 " 20-29" 108. 10.1
## 4 " 30-39" 111. 12.3

2
## 5 " 40-49" 115. 14.5
## 6 " 50-59" 122. 16.2
## 7 " 60-69" 127. 17.1
## 8 " 70+" 134. 19.8
## 9 <NA> 142. 22.9
5. Repita o exercício 4 para homens.
# coloque sua resposta aqui
NHANES %>%
filter(Gender == "male") %>% group_by(AgeDecade) %>% summarize(media=mean(BPSysAve,na.rm=TRUE),des

## Warning: Factor `AgeDecade` contains implicit NA, consider using


## `forcats::fct_explicit_na`
## # A tibble: 9 x 3
## AgeDecade media desvio_padrao
## <fct> <dbl> <dbl>
## 1 " 0-9" 97.4 8.32
## 2 " 10-19" 110. 11.2
## 3 " 20-29" 118. 11.3
## 4 " 30-39" 119. 12.3
## 5 " 40-49" 121. 14.0
## 6 " 50-59" 126. 17.8
## 7 " 60-69" 127. 17.5
## 8 " 70+" 130. 18.7
## 9 <NA> 136. 23.5
6. Podemos combinar os resultados dos exercícios 4 e 5 em apenas uma linha de código. A função group_by
nos permite agrupar usando mais de uma variável. Obtenha uma tabela sumária única com os mesmos
resultados de 4 e 5, mas usando group_by(AgeDecade, Gender).
# coloque sua resposta aqui
NHANES %>% group_by(AgeDecade, Gender) %>% summarize(media=mean(BPSysAve,na.rm=TRUE),desvio_padrao = sd(

## Warning: Factor `AgeDecade` contains implicit NA, consider using


## `forcats::fct_explicit_na`
## Warning: Factor `Faixa Etária` contains implicit NA, consider using
## `forcats::fct_explicit_na`
## # A tibble: 18 x 4
## # Groups: Faixa Etária [9]
## `Faixa Etária` Gênero media desvio_padrao
## <fct> <fct> <dbl> <dbl>
## 1 " 0-9" female 100. 9.07
## 2 " 0-9" male 97.4 8.32
## 3 " 10-19" female 104. 9.46
## 4 " 10-19" male 110. 11.2
## 5 " 20-29" female 108. 10.1
## 6 " 20-29" male 118. 11.3
## 7 " 30-39" female 111. 12.3
## 8 " 30-39" male 119. 12.3
## 9 " 40-49" female 115. 14.5
## 10 " 40-49" male 121. 14.0
## 11 " 50-59" female 122. 16.2
## 12 " 50-59" male 126. 17.8
## 13 " 60-69" female 127. 17.1

3
## 14 " 60-69" male 127. 17.5
## 15 " 70+" female 134. 19.8
## 16 " 70+" male 130. 18.7
## 17 <NA> female 142. 22.9
## 18 <NA> male 136. 23.5
7. Considerando homens na faixa etária 40-49, compare a pressão arterial sistólica entre os grupos raciais
(Race1). Ordene os resultados em ordem crescente de pressão arterial sistólica média.
# coloque sua resposta aqui
NHANES %>%
filter(AgeDecade ==" 40-49" & Gender == "male") %>% group_by(Race1) %>% summarize(media=mean(BPSy

## # A tibble: 5 x 3
## Race1 media desvio_padrao
## <fct> <dbl> <dbl>
## 1 White 120. 13.4
## 2 Other 120. 16.2
## 3 Hispanic 122. 11.1
## 4 Mexican 122. 13.9
## 5 Black 126. 17.1

Você também pode gostar