Hoe een data.table in r te filteren (met voorbeelden)


U kunt de volgende methoden gebruiken om rijen uit een data.table in R te filteren:

Methode 1: Rijen filteren op basis van één voorwaarde

 dt[col1 == ' A ', ]

Methode 2: Filter rijen die een waarde in de lijst bevatten

 dt[col1 %in% c(' A ', ' C '), ]

Methode 3: Filter rijen waarvoor aan een van verschillende voorwaarden is voldaan

 dt[col1 == ' A ' | col2 < 10 , ]

Methode 4: Filter rijen waarbij aan meerdere voorwaarden wordt voldaan

 dt[col1 == ' A ' & col2 < 10 , ]

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende data.table in R:

 library (data.table)

#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data table
dt

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28

Voorbeeld 1: Rijen filteren op basis van een voorwaarde

De volgende code laat zien hoe u alleen rijen filtert waarvan de waarde in de teamkolom gelijk is aan ‚A‘:

 #filter for rows where team is A
dt[team == ' A ', ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24

Voorbeeld 2: Filter rijen die een waarde in de lijst bevatten

De volgende code laat zien hoe u alleen rijen filtert waarvan de waarde in de teamkolom gelijk is aan ‚A‘ of ‚C‘:

 #filter for rows where team is A or C
dt[team %in% c(' A ', ' C '), ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: C 95 34 28

Gerelateerd: Hoe de %in% operator in R te gebruiken (met voorbeelden)

Voorbeeld 3: Filter rijen waarvoor aan een van meerdere voorwaarden is voldaan

De volgende code laat zien hoe u alleen rijen filtert waarvan de waarde in de teamkolom gelijk is aan ‚A‘ of de waarde in de puntenkolom kleiner is dan 90:

 #filter for rows where team is A or points < 90
dt[team == ' A ' | points < 90 , ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24

Opmerking : de | De operator betekent „OF“ in R.

Voorbeeld 4: Filter rijen waarbij aan meerdere voorwaarden wordt voldaan

De volgende code laat zien hoe u alleen rijen filtert waarbij de waarde in de teamkolom gelijk is aan ‚A‘ en de waarde in de puntenkolom kleiner is dan 90:

 #filter for rows where team is A and points < 90
dt[team == ' A ' & points < 90 , ]

   team points assists rebounds
1: A 86 31 24

Opmerking : de & -operator betekent “EN” in R.

Aanvullende bronnen

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

Hoe een vector in R te filteren
Hoe lijnen met nullen in R te verwijderen
Hoe lege regels uit het dataframe in R te verwijderen

Einen Kommentar hinzufügen

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