Hoe select_if te gebruiken met meerdere voorwaarden in dplyr
U kunt de volgende basissyntaxis gebruiken met de functie select_if() van het dplyr- pakket om kolommen in een dataframe te selecteren die aan een van verschillende voorwaarden voldoen:
df %>% select_if( function (x) condition1 | condition2)
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld 1: Gebruik select_if() met klassetypen
De volgende code laat zien hoe u de functie select_if() gebruikt om kolommen in een dataframe te selecteren die een teken- of numeriek klassetype hebben:
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
Houd er rekening mee dat de kolom met één teken ( team ) en de twee numerieke kolommen ( points_for en points_against ) worden geretourneerd, terwijl de kolom met factoren ( conference ) niet wordt geretourneerd.
Voorbeeld 2: Gebruik select_if() met klassetypen en kolomnamen
De volgende code laat zien hoe u de functie select_if() gebruikt om kolommen in een dataframe te selecteren die een factorklassetype of points_for kolomnaam hebben:
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
Houd er rekening mee dat de kolom met één factor en de kolom met het label points_for worden geretourneerd.
Opmerking : de | symbool is de logische “OR”-operator in R. U kunt gerust zoveel mogelijk | symbolen omdat u kolommen wilt selecteren met meer dan twee voorwaarden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelgebruikte functies in dplyr kunt gebruiken:
Hoe de cross()-functie in dplyr te gebruiken
Hoe de functie move() in dplyr te gebruiken
Hoe de slice()-functie in dplyr te gebruiken