Um cientista de dados está trabalhando com um conjunto de da...

Próximas questões
Com base no mesmo assunto
Q2383248 Programação
Um cientista de dados está trabalhando com um conjunto de dados e usando a linguagem de programação R. O conjunto de dados, chamado dados, consiste em três colunas: ID, Idade e Salario, em que Idade indica um grupo de idade. O cientista de dados precisa calcular a média de Salario para cada grupo de idade. No entanto, ele deve realizar essa tarefa utilizando apenas as funções base do R, sem pacotes adicionais.
Qual função ou conjunto de funções do R ele deve usar para realizar essa tarefa de forma eficiente?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: D - aggregate(Salario ~ Idade, dados, mean)

Para entender por que a alternativa D é a correta, é importante compreender o que a função aggregate faz na linguagem R. A função aggregate é utilizada para aplicar uma função de resumo, como a média (mean), para dados agrupados de acordo com um ou mais fatores. No caso apresentado na questão, o cientista de dados está interessado em calcular a média de salário para cada grupo de idade. Portanto, queremos aplicar a função de média (mean) ao salário, separadamente para cada grupo de idade.

A expressão Salario ~ Idade é uma fórmula no R que indica que queremos modelar o salário com base no grupo de idade. O operador ~ é lido como "modelado por". A função aggregate tomará essa fórmula e aplicará a função especificada, que neste caso é mean, para calcular a média de salário dentro de cada grupo de idade especificado na coluna Idade do dataframe dados.

O uso da função aggregate é mais apropriado do que as outras opções por várias razões:

  • A opção A, mean(dados$Salario), calcularia apenas a média de todos os salários, sem levar em conta a divisão por grupos de idade.
  • A opção B, split(dados$Salario, dados$Idade), dividiria o vetor de salários em listas com base na idade, mas não calcularia a média.
  • A opção C, tapply(dados$Salario, dados$Idade, sum), calcularia a soma dos salários por grupo de idade, em vez da média.
  • A opção E, sum(dados$Salario) / length(unique(dados$Idade)), calcularia a média dos salários de todos os dados divididos pelo número de grupos de idade únicos, o que não corresponde ao que foi pedido.

Por esses motivos, a alternativa D é a resposta correta, pois ela efetivamente calcula a média de salário para cada grupo de idade de maneira direta e utilizando apenas funções base do R.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

No R, a função aggregate serve para aplicar uma função previamente definida em mais de um grupo de dados.

A - Mean calcula a média mas uma média simples de um fator sobre outro

B - Split divide o vetor

C - tapply também aplica funções a subgrupos dos dados, mas como podem ver, o terceiro argumento é sum. Esse código soma subgrupos de dados.

D - Aqui o programa pega duas dimensões (salários e idade) do vetor dados e aplica a função mean.

E - A função length com argumento unique gera um problema ao analisar pessoas com a mesma idade

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo