Snel draaitabellen maken in r
In Excel bieden draaitabellen een eenvoudige manier om gegevens te groeperen en samen te vatten.
Als we bijvoorbeeld de volgende gegevensset in Excel hebben, kunnen we een draaitabel gebruiken om de totale omzet snel per regio samen te vatten:
Dit vertelt ons:
- Regio A had in totaal 51 verkopen
- Regio B had in totaal 85 verkopen
- Regio C behaalde een totale omzet van 140
Of we kunnen het samenvatten met een andere maatstaf, zoals de gemiddelde verkoop per regio:
Het blijkt dat we snel soortgelijke draaitabellen in R kunnen maken met behulp van de functies group_by() en summary() uit het dplyr- pakket.
In deze zelfstudie vindt u verschillende voorbeelden van hoe u dit kunt doen.
Voorbeeld: Draaitabellen maken in R
Laten we eerst dezelfde gegevensset in R maken die we in de vorige voorbeelden uit Excel hebben gebruikt:
#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
Laten we vervolgens het dplyr-pakket laden en de functies group_by() en summary() gebruiken om te groeperen op regio en de som van de verkopen per regio te vinden:
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
We kunnen zien dat deze cijfers overeenkomen met de cijfers die worden weergegeven in het inleidende voorbeeld van Excel.
We kunnen ook de gemiddelde omzet per regio berekenen:
#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
Nogmaals, deze getallen komen overeen met de getallen in het vorige Excel-voorbeeld.
Merk op dat we ook op meerdere variabelen kunnen groeperen. We kunnen bijvoorbeeld de som van de verkopen vinden, gegroepeerd op regio en apparaattype:
#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
Aanvullende bronnen
Een VERT.ZOEKEN doen (vergelijkbaar met Excel) in R
De complete gids: gegevens groeperen en samenvatten in R