Como filtrar um data.table em r (com exemplos)


Você pode usar os seguintes métodos para filtrar linhas de um data.table em R:

Método 1: filtrar linhas com base em uma única condição

 dt[col1 == ' A ', ]

Método 2: Filtrar linhas contendo um valor na lista

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

Método 3: Filtrar linhas para as quais uma das várias condições for atendida

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

Método 4: Filtrar linhas onde várias condições são atendidas

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

Os exemplos a seguir mostram como usar cada método na prática com o seguinte data.table em 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

Exemplo 1: Filtrar linhas com base em uma condição

O código a seguir mostra como filtrar apenas linhas cujo valor na coluna da equipe é igual a “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

Exemplo 2: Filtrar linhas contendo um valor na lista

O código a seguir mostra como filtrar apenas linhas cujo valor na coluna da equipe seja igual a “A” ou “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

Relacionado: Como usar o operador% in% em R (com exemplos)

Exemplo 3: Filtrar linhas para as quais uma das várias condições é atendida

O código a seguir mostra como filtrar apenas linhas cujo valor na coluna da equipe é igual a “A” ou o valor na coluna de pontos é menor que 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 : O | O operador significa “OR” em R.

Exemplo 4: Filtrar linhas onde várias condições são atendidas

O código a seguir mostra como filtrar apenas linhas onde o valor na coluna da equipe é igual a “A” e o valor na coluna de pontos é menor que 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 : O operador & significa “AND” em R.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como filtrar um vetor em R
Como deletar linhas com zeros em R
Como remover linhas em branco do quadro de dados em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *