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