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