Jak utworzyć tabelę przestawną za pomocą dplyr (z przykładami)
Do utworzenia tabeli przestawnej przy użyciu funkcji z pakietów dplyr i Tidyr w języku R można użyć następującej podstawowej składni:
df %>% group_by (var1, v ar2) %>% tally () %>% spread (var1,n)
Poniższe przykłady pokazują, jak używać tej składni w praktyce.
Przykład 1: Utwórz podstawową tabelę przestawną
Załóżmy, że mamy następującą ramkę danych w R:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'), dots=c(7, 7, 8, 11, 13, 15, 19, 13)) #view data frame df team position points 1 AG 7 2 AG 7 3AF 8 4 AC 11 5 BG 13 6 BF 15 7 BF 19 8 BC 13
Możemy użyć następującej składni, aby utworzyć tabelę przestawną dla zmiennych „zespół” i „pozycja”:
library (dplyr) library (tidyr) #produce crosstab df %>% group_by (team, position) %>% tally () %>% spread (team, n) # A tibble: 3 x 3 position AB 1 C 1 1 2 F 1 2 3 G 2 1
Oto jak interpretować wartości tabeli przestawnej:
- Jest 1 zawodnik zajmujący pozycję „C” i należący do drużyny „A”
- Jest 1 zawodnik zajmujący pozycję „C” i należący do drużyny „B”
- Jest 1 zawodnik zajmujący pozycję „F” i należący do drużyny „A”
- Jest dwóch graczy, którzy mają pozycję „F” i należą do drużyny „B”
- Jest dwóch graczy, którzy mają pozycję „G” i należą do drużyny „A”
- Jest 1 zawodnik zajmujący pozycję „G” i należący do drużyny „B”
Zauważ, że możemy zmienić wiersze i kolumny tabeli przestawnej, zmieniając zmienną używaną w funkcji spread() :
library (dplyr) library (tidyr) #produce crosstab with 'position' along columns df %>% group_by (team, position) %>% tally () %>% spread (position, n) # A tibble: 2 x 4 # Groups: team [2] team CFG 1 A 1 1 2 2 B 1 2 1
Powiązane: Jak korzystać z funkcji Spread w Tidyr
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe funkcje w dplyr:
Jak obliczyć częstotliwości względne za pomocą dplyr
Jak wybrać kolumny według indeksu za pomocą dplyr
Jak usunąć wiersze za pomocą dplyr