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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *