Jak wybrać pierwsze n wartości według grupy w r


Możesz użyć dowolnej z poniższych metod, aby wybrać N górnych wartości według grupy w R:

Metoda 1: Wybierz pierwsze N wartości na grupę (zignoruj powiązania)

 library (dplyr)

#select top 5 values by group
df %>% 
  arrange(desc(values_column)) %>% 
  group_by(group_column) %>%
  slice(1:5)

Metoda 2: wybierz pierwsze N wartości według grupy (uwzględnij powiązania)

 library (dplyr)

#select top 5 values by group
df %>%
  group_by(group_column) %>%
  top_n(5, values_column)

Poniższe przykłady pokazują, jak używać każdej metody z następującą ramką danych w R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12))

#view data frame
df

  team points rebounds
1 A 19 10
2 to 22 6
3 to 15 3
4 A NA 7
5 B 14 11
6 B 25 13
7 B 25 9
8 B 25 12

Przykład 1: wybierz pierwsze N wartości na grupę (zignoruj powiązania)

Poniższy kod pokazuje, jak wybrać pierwsze 2 wiersze z najwyższymi wartościami punktowymi, pogrupowane według zespołu:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>% 
  arrange(desc(points)) %>% 
  group_by(team) %>%
  slice(1:2)

# A tibble: 4 x 3
# Groups: team [2]
  team points rebounds
        
1 to 22 6
2 A 19 10
3 B 25 13
4 B 25 9

Wynik zawiera dwa wiersze z najwyższymi wartościami punktowymi dla każdej drużyny.

Należy zauważyć, że w przypadku Zespołu B w rzeczywistości były trzy wiersze, które osiągnęły najwyższą wartość punktową ( 25 ), ale na wyjściu zwrócone zostały tylko dwa wiersze.

Ta metoda po prostu ignoruje linki.

Przykład 2: wybierz pierwsze N wartości na grupę (uwzględnij powiązania)

Poniższy kod pokazuje, jak wybrać pierwsze 2 wiersze z najwyższymi wartościami punktowymi, pogrupowane według zespołu:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>%
  group_by(team) %>%
  top_n(2, dots)

# A tibble: 5 x 3
# Groups: team [2]
  team points rebounds
        
1 A 19 10
2 to 22 6
3 B 25 13
4 B 25 9
5 B 25 12

Wynik zawiera dwa wiersze z najwyższymi wartościami punktowymi dla każdej drużyny.

Należy zauważyć, że w przypadku Drużyny B trzy linie były remisowe w celu uzyskania najwyższej wartości punktowej ( 25 ), więc ta metoda uwzględniała te trzy linie w wyniku końcowym.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:

Jak wybrać wiersze, w których wartość pojawia się w dowolnej kolumnie w R
Jak wybrać określone kolumny w R
Jak wybrać kolumny według indeksu w R

Dodaj komentarz

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