Hoe u meerdere kolommen samenvat met dplyr


U kunt de volgende methoden gebruiken om meerdere kolommen in een gegevensframe samen te vatten met behulp van dplyr:

Methode 1: Vat alle kolommen samen

 #summarize mean of all columns
df %>%
  group_by(group_var) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

Methode 2: vat specifieke kolommen samen

 #summarize mean of col1 and col2 only
df %>%
  group_by(group_var) %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

Methode 3: Vat alle numerieke kolommen samen

 #summarize mean and standard deviation of all numeric columns
df %>%
  group_by(group_var) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met het volgende dataframe:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95, 90),
                 assists=c(33, 28, 31, 39, 34, 25),
                 rebounds=c(NA, 28, 24, 24, 28, 19))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 28 28
3 A 86 31 24
4 B 88 39 24
5 B 95 34 28
6 B 90 25 19

Voorbeeld 1: Vat alle kolommen samen

De volgende code laat zien hoe u het gemiddelde van alle kolommen samenvat:

 library (dplyr)

#summarize mean of all columns, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

# A tibble: 2 x 4
  team points assists rebounds
           
1 A 91.7 30.7 26  
2 B 91 32.7 23.7

Voorbeeld 2: vat specifieke kolommen samen

De volgende code laat zien hoe u het gemiddelde van alleen de kolommen punten en rebounds kunt samenvatten:

 library (dplyr)

#summarize mean of points and rebounds, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

# A tibble: 2 x 3
  team points rebounds
        
1 A 91.7 26  
2 B 91 23.7

Voorbeeld 3: Vat alle numerieke kolommen samen

De volgende code laat zien hoe u het gemiddelde en de standaardafwijking van alle numerieke kolommen in het gegevensframe samenvat:

 library (dplyr)

#summarize mean and standard deviation of all numeric columns
df %>%
  group_by(team) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

# A tibble: 2 x 7
  team points_mean points_sd assists_mean assists_sd rebounds_mean rebounds_sd
                                            
1 A 91.7 6.66 30.7 2.52 26 2.83
2 B 91 3.61 32.7 7.09 23.7 4.51

De uitvoer toont het gemiddelde en de standaardafwijking van alle numerieke variabelen in het gegevensframe.

Merk op dat we in dit voorbeeld de functie list() hebben gebruikt om verschillende samenvattende statistieken op te sommen die we wilden berekenen.

Opmerking : in elk voorbeeld hebben we de functie dplyr across() gebruikt. De volledige documentatie voor deze functie vindt u hier .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies kunt uitvoeren met dplyr:

Rijen verwijderen met dplyr
Rijen rangschikken met dplyr
Hoe u op meerdere voorwaarden kunt filteren met behulp van dplyr

Einen Kommentar hinzufügen

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