Um cientista de dados está trabalhando com um conjunto de da...
Qual função ou conjunto de funções do R ele deve usar para realizar essa tarefa de forma eficiente?
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
mean()
- O que faz? Calcula a média (o valor médio) de um conjunto de números.
- Exemplo simples: Se você tem os números 2, 4 e 6, a média é (2 + 4 + 6) ÷ 3 = 4.
- Uso: onde x é um vetor de números.mean(x)
- Detalhe: Se tiver valores faltando (NA), use para ignorar esses valores mean(x, na.rm=TRUE)
dividir()
- O que faz? Divide um conjunto de dados em grupos, baseado em algum critério.
- Exemplo simples: Se você tem uma lista de frutas e quer separar por tipo (maçã, pera, laranja), o split cria um grupo para cada tipo.
- Uso: onde é o que você quer dividir e define os grupos.split(dados, grupo)dados,grupo
- Para que serve? Facilita trabalhar com cada grupo separadamente.
tapply()
- O que faz? Aplica uma função (como média, soma) a cada grupo criado a partir de um vetor, usando um fator para agrupar.
- Exemplo simples: Se você quer a média das notas dos alunos por turma, usa tapply para calcular a média em cada turma.
- Uso: onde pode ser mean, sum, etc.tapply(dados, grupo, funcao)funcao
- Por que é útil? Porque faz cálculo separado para cada grupo sem precisar dividir os dados manualmente.
aggregate()
- O que faz? Similar ao tapply, mas funciona direto em data frames e permite agrupar por uma ou mais variáveis, aplicando funções como média, soma, etc.
- Exemplo simples: Se você tem uma tabela com vendas por região e quer a soma das vendas por região, usa aggregate.
- Uso: aggregate(coluna ~ grupo, dados, funcao)
- Vantagem: Fácil de usar para resumir dados agrupados em tabelas
sum()
- O que faz? Soma todos os valores de um vetor.
- Exemplo simples: Se você tem os números 1, 2 e 3, sum volta ao 6.
- Uso: sum(x)
- Detalhe: Também pode ignorar valores NA com .sum(x, na.rm=TRUE)
CONCEITOS
Vetor em Python é uma estrutura de dados que armazena uma coleção ordenada de elementos. EX : vetor = [1, 2, 3, 4, 5,6]
NA geralmente significa "Not Available" ou "Not Applicable". É comumente usado para indicar a ausência de um valor válido ou quando um dado específico não está disponível no contexto.
Data Frames são como tabelas de dados que você encontra em programas de planilhas, só que em Python. Eles são como uma forma organizada de guardar informações em linhas e colunas, onde cada coluna representa um tipo de informação e cada linha é uma entrada de dados.
Gabarito: D) aggregate(Salario ~ Idade, dados, mean)
Resumo do Resumo:
A função aggregate() é uma função base do R que permite aplicar uma função (como mean) a uma variável (Salario), agrupando por outra variável (Idade). A sintaxe Salario ~ Idade especifica que queremos a média do Salário para cada Idade.
Por que as outras estão incorretas:
- A. mean(dados$Salario) → Calcula apenas a média geral do salário, não por grupo.
- B. split(dados$Salario, dados$Idade) → Divide os salários por idade, mas não calcula a média.
- C. tapply(dados$Salario, dados$Idade, sum) → Soma os salários por idade, mas não calcula a média.
- E. sum(dados$Salario) / length(unique(dados$Idade)) → Calcula a média geral dividida pelo número de grupos, não a média por grupo.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo