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

Einen Kommentar hinzufügen

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