# How to Filter a data.table in R (With Examples)

You can use the following methods to filter the rows of a data.table in R:

Method 1: Filter for Rows Based on One Condition

```dt[col1 == 'A', ]
```

Method 2: Filter for Rows that Contain Value in List

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

Method 3: Filter for Rows where One of Several Conditions is Met

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

Method 4: Filter for Rows where Multiple Conditions are Met

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

The following examples show how to use each method in practice with the following 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```

## Example 1: Filter for Rows Based on One Condition

The following code shows how to filter for only the rows where the value in the team column is equal to ‘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
```

## Example 2: Filter for Rows that Contain Value in List

The following code shows how to filter for only the rows where the value in the team column is equal to ‘A’ or ‘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
```

## Example 3: Filter for Rows where One of Several Conditions is Met

The following code shows how to filter for only the rows where the value in the team column is equal to ‘A’ or the value in the points column is less than 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```

Note: The | operator stands for “OR” in R.

## Example 4: Filter for Rows where Multiple Conditions are Met

The following code shows how to filter for only the rows where the value in the team column is equal to ‘A’ and the value in the points column is less than 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```

Note: The & operator stands for “AND” in R.