Como criar tabelas dinâmicas rapidamente em r


No Excel, as tabelas dinâmicas fornecem uma maneira fácil de agrupar e resumir dados.

Por exemplo, se tivermos o seguinte conjunto de dados no Excel, podemos usar uma tabela dinâmica para resumir rapidamente o total de vendas por região:

Isso nos diz:

  • A região A teve 51 vendas totais
  • A região B teve 85 vendas totais
  • A Região C alcançou 140 vendas totais

Ou poderíamos resumir por outra métrica, como vendas médias por região:

Acontece que podemos criar rapidamente tabelas dinâmicas semelhantes em R usando as funções group_by() e summary() do pacote dplyr .

Este tutorial fornece vários exemplos de como fazer isso.

Exemplo: Criar tabelas dinâmicas em R

Primeiro, vamos criar o mesmo conjunto de dados em R que usamos nos exemplos anteriores do Excel:

 #create data frame
df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                 device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'),
                 sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32))

#view data frame
df

   region device sales
1AX 12
2AX18
3 AY 21
4 BX22
5 BY 34
6 BY 29
7 CX 38
8CX36
9 CY 34
10 CY 32

A seguir, vamos carregar o pacote dplyr e usar as funções group_by() e summary() para agrupar por região e encontrar a soma das vendas por região:

 library (dplyr)

#find sum of sales by region
df %>%
  group_by (region) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 3 x 2
  region sum_sales
        
1 to 51
2 B 85
3 C 140

Podemos ver que esses números correspondem aos números mostrados no exemplo introdutório do Excel.

Também podemos calcular as vendas médias por região:

 #find average sales by region
df %>%
  group_by (region) %>% 
  summarize (mean_sales = mean (sales))

# A tibble: 3 x 2
  region mean_sales
        
1 to 17  
2 B 28.3
3 C 35

Novamente, esses números correspondem aos números mostrados no exemplo anterior do Excel.

Observe que também podemos agrupar por múltiplas variáveis. Por exemplo, poderíamos encontrar a soma das vendas agrupadas por região e tipo de dispositivo:

 #find sum of sales by region and device type
df %>%
  group_by (region, device) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 6 x 3
# Groups: region [3]
  region device sum_sales
          
1AX30
2 AY 21
3 BX22
4 BY 63
5 CX 74
6 CY 66

Recursos adicionais

Como fazer um VLOOKUP (semelhante ao Excel) em R
O guia completo: como agrupar e resumir dados em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *