Come filtrare un data.table in r (con esempi)


È possibile utilizzare i seguenti metodi per filtrare le righe da una data.table in R:

Metodo 1: filtra le righe in base a una singola condizione

 dt[col1 == ' A ', ]

Metodo 2: filtrare le righe contenenti un valore nell’elenco

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

Metodo 3: filtrare le righe per le quali è soddisfatta una delle diverse condizioni

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

Metodo 4: filtra le righe in cui sono soddisfatte più condizioni

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

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente 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

Esempio 1: filtrare le righe in base a una condizione

Il codice seguente mostra come filtrare solo le righe il cui valore nella colonna del team è uguale ad “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

Esempio 2: filtrare le righe contenenti un valore nell’elenco

Il codice seguente mostra come filtrare solo le righe il cui valore nella colonna del team è uguale a “A” o “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

Correlato: Come utilizzare l’operatore %in% in R (con esempi)

Esempio 3: filtrare le righe per le quali è soddisfatta una delle diverse condizioni

Il codice seguente mostra come filtrare solo le righe il cui valore nella colonna della squadra è uguale ad “A” o il valore nella colonna dei punti è inferiore a 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

Nota : il | L’operatore significa “OR” in R.

Esempio 4: filtrare le righe in cui sono soddisfatte più condizioni

Il codice seguente mostra come filtrare solo le righe in cui il valore nella colonna della squadra è uguale ad “A” e il valore nella colonna dei punti è inferiore a 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

Nota : l’operatore & significa “AND” in R.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come filtrare un vettore in R
Come eliminare le righe con zeri in R
Come rimuovere le righe vuote dal frame di dati in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *