Hoe u de eerste n-waarden per groep in r selecteert


U kunt een van de volgende methoden gebruiken om de bovenste N-waarden per groep in R te selecteren:

Methode 1: Selecteer eerste N-waarden per groep (negeer banden)

 library (dplyr)

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

Methode 2: selecteer de eerste N-waarden per groep (inclusief banden)

 library (dplyr)

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

De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met het volgende dataframe in 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

Voorbeeld 1: selecteer de eerste N-waarden per groep (negeer banden)

De volgende code laat zien hoe u de eerste twee rijen met de hoogste puntwaarden selecteert, gegroepeerd op team:

 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

Het resultaat bevat de twee rijen met de hoogste puntwaarden voor elk team.

Merk op dat er voor team B feitelijk drie rijen waren die gelijk scoorden op de hoogste puntwaarde ( 25 ), maar dat er slechts twee rijen in de uitvoer worden geretourneerd.

Deze methode negeert eenvoudigweg de links.

Voorbeeld 2: selecteer de eerste N-waarden per groep (inclusief banden)

De volgende code laat zien hoe u de eerste twee rijen met de hoogste puntwaarden selecteert, gegroepeerd op team:

 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

Het resultaat bevat de twee rijen met de hoogste puntwaarden voor elk team.

Merk op dat voor team B drie lijnen gelijk waren voor de hoogste puntenwaarde ( 25 ), dus deze methode nam die drie lijnen op in het eindresultaat.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:

Hoe u rijen selecteert waarin waarde wordt weergegeven in een willekeurige kolom in R
Hoe specifieke kolommen in R te selecteren
Kolommen selecteren op index in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert