Pular para o conteúdo principal
Módulo 3 · Lição 2 de 26/10 no curso~15 min
Lições do módulo (2/2)

Exploração e Agregação

R foi criado principalmente como um ambiente estatístico, portanto fornece muitas funções integradas para analisar, resumir e compreender a distribuição de dados em vetores ou tabelas.

Funções estatísticas básicas

R permite calcular facilmente as principais medidas de centro e propagação em vetores numéricos:

  • mean(x): Calcula a média aritmética dos elementos.
  • median(x): Calcula a mediana (o valor do meio).
  • sd(x): Calcula o desvio padrão (uma medida de quão espalhados estão os dados).
  • min(x) e max(x): Retorna os valores mínimo e máximo respectivamente.
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

Tratamento de dados ausentes (NA)

No mundo real, os conjuntos de dados geralmente contêm valores ausentes, representados em R pela entidade especial NA (não disponível).

Se você tentar calcular a média ou qualquer outro agregado em um vetor que contenha pelo menos um único NA, R retornará NA como resultado. Para ignorar valores faltantes, você deve passar o argumento lógico na.rm = TRUE (NA remove):

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

Resumo global com summary()

A função summary() é uma ferramenta poderosa que fornece uma visão estatística completa de um vetor ou de um quadro de dados inteiro, mostrando mínimo, primeiro quartil, mediana, média, terceiro quartil e máximo:

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

Agregando dados com aggregate

Ao trabalhar com quadros de dados, é comum calcular estatísticas resumidas (como média ou soma) para grupos ou categorias específicas. A função aggregate() em R simplifica este processo:

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

A sintaxe salary ~ department significa "analisar a variável salary com base na variável department". O argumento FUN = mean especifica que queremos calcular a média aritmética para cada grupo.

Filtragem avançada com subset

A função subset() fornece uma maneira intuitiva e elegante de extrair subconjuntos de linhas e colunas de um quadro de dados, evitando o uso de colchetes complexos:

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

Experimente você mesmo

Exercício#r.m3.l2.e1
Tentativas: 0Carregando…

Dadas as temperaturas do vetor, calcule a média e salve-a na variável média_temp. Em seguida, calcule a mediana e salve-a em median_temp.

Carregando editor…
Mostrar dica

Usa média_temp <- média(temperaturas) e mediana_temp <- mediana(temperaturas)

Solução disponível após 3 tentativas

Exercício#r.m3.l2.e2
Tentativas: 0Carregando…

Dado o vetor de pontuações contendo um valor NA, calcule o desvio padrão do vetor excluindo os valores faltantes e salve-o na variável sd_scores.

Carregando editor…
Mostrar dica

Use a função sd() com o argumento na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

Solução disponível após 3 tentativas

Exercício#r.m3.l2.e3
Tentativas: 0Carregando…

Dado o quadro de dados df, obtenha o resumo estatístico da coluna de valores e salve-o na variável stats_summary.

Carregando editor…
Mostrar dica

Extraia a coluna usando o operador $ e passe-a para summary(): stats_summary <- summary(df$values)

Solução disponível após 3 tentativas

Exercício#r.m3.l2.e4
Tentativas: 0Carregando…

Dadas as vendas do quadro de dados, use a função agregada() para calcular a soma (FUN = soma) da coluna de receita agrupada pela coluna de região. Salve o resultado na variável region_sales.

Carregando editor…
Mostrar dica

Use: regional_sales <- agregado(receita ~ região, dados = vendas, FUN = soma)

Solução disponível após 3 tentativas

Exercício#r.m3.l2.e5
Tentativas: 0Carregando…

Dados os produtos do data frame, utilize a função subset() para filtrar apenas os produtos que pertencem à categoria 'Eletrônicos' (categoria == 'Eletrônicos') e possuem preço superior a 100 (preço > 100). Salve o resultado na variável caros_electronics.

Carregando editor…
Mostrar dica

Use: caros_eletrônicos <- subconjunto (produtos, categoria == 'Eletrônicos' e preço > 100)

Solução disponível após 3 tentativas