Jak szybko tworzyć tabele przestawne w r
W programie Excel tabele przestawne umożliwiają łatwe grupowanie i podsumowywanie danych.
Na przykład, jeśli mamy w Excelu następujący zestaw danych, możemy użyć tabeli przestawnej, aby szybko podsumować całkowitą sprzedaż według regionów:
To nam mówi:
- Region A odnotował łączną sprzedaż 51 sztuk
- Region B odnotował łączną sprzedaż 85 sztuk
- Region C osiągnął łączną sprzedaż 140 sztuk
Możemy też podsumować za pomocą innego wskaźnika, np. średniej sprzedaży według regionu:
Okazuje się, że podobne tabele przestawne możemy szybko utworzyć w R, korzystając z funkcji group_by() i podsumowanie() z pakietu dplyr .
W tym samouczku znajdziesz kilka przykładów, jak to zrobić.
Przykład: utwórz tabele przestawne w języku R
Najpierw utwórzmy ten sam zbiór danych w R, którego używaliśmy w poprzednich przykładach z Excela:
#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
Następnie załadujmy pakiet dplyr i użyjmy funkcji group_by() i podsumowanie() , aby pogrupować według regionu i znaleźć sumę sprzedaży według regionu:
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
Widzimy, że liczby te odpowiadają liczbom pokazanym w przykładzie wprowadzającym programu Excel.
Możemy również obliczyć średnią sprzedaż według regionu:
#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
Ponownie liczby te odpowiadają liczbom pokazanym w poprzednim przykładzie programu Excel.
Należy pamiętać, że możemy także grupować według wielu zmiennych. Na przykład możemy znaleźć sumę sprzedaży pogrupowaną według regionu i typu urządzenia:
#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
Dodatkowe zasoby
Jak wykonać WYSZUKAJ.PIONOWO (podobnie jak w Excelu) w R
Kompletny przewodnik: jak grupować i podsumowywać dane w R