Uma base de dados consiste em 10 milhões de observações de pesos de adultos saudáveis. Suponha que se deseja calcular a proporção de indivíduos amostrados que tem peso maior ou igual a L e menor ou igual a U, com U > L. Se os valores estão guardados em um vetor chamado “pesos”, o comando R que calcula corretamente a proporção desejada é:
- A)sum( (pesos = U) );
Errada, porque usa sum() e ainda inverte as desigualdades, contando elementos fora do intervalo e não uma proporção.
- B)sum( (pesos >= L) + (pesos <= U) );
Errada, porque soma condições em vez de exigir que as duas sejam verdadeiras ao mesmo tempo, então não representa o intervalo pedido.
- C)mean( (pesos >= L) * (pesos <= U) );
Certa, pois a multiplicação das condições gera 1 apenas para valores entre L e U, e mean() devolve a proporção desses casos.
- D)mean( (pesos = U) );
Errada, porque novamente inverte as desigualdades, selecionando a faixa errada de valores.
- E)mean( (pesos = U) ).
Errada, porque a soma das condições não exige simultaneidade e ainda mistura valores fora do intervalo, então não mede a proporção correta.
Gabarito: C
Em R, comparações como (pesos >= L) e (pesos = L) * (pesos <= U) marca com 1 apenas os pesos dentro do intervalo [L, U], e mean() calcula a parcela de observações nessa faixa. É o tipo de solução elegante que banca adora cobrar: curta, funcional e com um pequeno truque de coerção lógica do R.