dados <- merge(___, ___, by = "id", all.x = TRUE)Exercícios do tópico 4
Questão 1: Unindo tabelas
Una as tabelas demografico e laboratorio usando merge() com all.x = TRUE e salve o resultado no objeto dados.
a) Quantas linhas e colunas a base unificada tem? Use dim().
b) Quais são os nomes das colunas? Use colnames().
dados <- merge(demografico, laboratorio, by = "id", all.x = TRUE)
dim(dados)
colnames(dados)Questão 2: Conhecendo os participantes
Use o banco demografico para responder:
a) Quantos participantes há de cada sexo? Use table().
b) Quantos participantes há de cada estado civil? Use table().
c) Ordene o banco por idade em ordem decrescente. Quem são os 3 participantes mais velhos? Mostre apenas nome e idade.
# a)
table(demografico$sexo)
# b)
table(demografico$estado_civil)
# c)
ordenado <- demografico[order(demografico$idade, decreasing = TRUE), ]
ordenado[1:3, c("nome", "idade")]Questão 3: Filtrando participantes
a) Filtre o banco demografico para manter apenas os participantes com renda acima de R$120. Quantos são?
b) Qual percentual do total isso representa?
# a)
com_renda <- demografico[demografico$renda_reais > 0, ]
nrow(com_renda)
# b) dividir pelo total e multiplicar por 100
nrow(com_renda) / nrow(demografico) * 100Questão 4: Criando uma variável nova
No banco demografico, crie uma variável chamada baixa_renda que vale "Sim" se a renda for menor que R$ 120 e "Não" caso contrário. Use ifelse().
Em seguida, use table() para ver quantos participantes estão em cada categoria.
demografico$baixa_renda <- ifelse(demografico$renda_reais < 120, "Sim", "Não")
table(demografico$baixa_renda)Questão 5: Classificando o IMC
O banco medidas_fisicas contém a variável imc. Crie uma variável chamada classif_imc usando a tabela abaixo:
| Classificação | IMC |
|---|---|
"Abaixo do peso" |
< 18,5 |
"Peso normal" |
18,5 a 24,9 |
"Sobrepeso" |
25,0 a 29,9 |
"Obesidade" |
≥ 30,0 |
a) Crie a variável com ifelse() aninhado.
b) Use table() para ver quantos participantes há em cada categoria.
O ifelse() aninhado funciona assim: dentro do “senão” de um ifelse(), você coloca outro ifelse().
medidas_fisicas$classif_imc <- ifelse(
medidas_fisicas$imc < 18.5, "Abaixo do peso",
ifelse(medidas_fisicas$imc < 25, "Peso normal",
ifelse(medidas_fisicas$imc < 30, "Sobrepeso",
"Obesidade")))
table(medidas_fisicas$classif_imc)Questão 6: Resumindo por grupo
Use a função aggregate() para calcular a média de renda separada por estado civil no banco demografico.
aggregate(renda_reais ~ estado_civil, data = demografico, FUN = mean, na.rm = TRUE)A fórmula variavel ~ grupo significa: “calcule a variável separada por grupo”.