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