# Subset Data Frames in R

Subsetting or filtering the Data Frames is an essential part of data analysis. In this article, you will learn how to subset Data Frames in R.

First, create a sample Data Frame

```
df <- data.frame(col1 = c("A", "B", "C", "D", "E"),
col2 = c(1, 2, 3, 4, 5),
col3 = c(0.1, 0.2, 0.3, 0.4, 0.5),
col4 = c("abc", "def", "xyz", "lmn", "pqr"))
df
# output
col1 col2 col3 col4
1 A 1 0.1 abc
2 B 2 0.2 def
3 C 3 0.3 xyz
4 D 4 0.4 lmn
5 E 5 0.5 pqr
```

### Subset Data Frame based on columns

The Data Frame `df`

contains four columns (`col1`

, `col2`

, `col3`

, `col4`

). Subset `df`

to contain only `col2`

and
`col4`

columns,

Using column indexes,

```
df[, c(2, 4)]
# output
col2 col4
1 1 abc
2 2 def
3 3 xyz
4 4 lmn
5 5 pqr
```

Using column names,

```
df[, c("col2", "col4")]
# output
col2 col4
1 1 abc
2 2 def
3 3 xyz
4 4 lmn
5 5 pqr
```

You can also use `subset`

function to subset Data Frame,

```
subset(df, select=c(2, 4))
# output
col2 col4
1 1 abc
2 2 def
3 3 xyz
4 4 lmn
5 5 pqr
```

You can also use `select`

function from dplyr package to subset Data Frame,

```
library(dplyr)
df %>% select(col2, col4)
# output
col2 col4
1 1 abc
2 2 def
3 3 xyz
4 4 lmn
5 5 pqr
```

### Subset Data Frame based on rows

The Data Frame `df`

contains five rows. Subset `df`

to contain required rows,

Using row indexes,

```
df[c(1, 3), ]
# output
col1 col2 col3 col4
1 A 1 0.1 abc
3 C 3 0.3 xyz
```

Using row ranges,

```
df[c(1:3), ]
# output
col1 col2 col3 col4
1 A 1 0.1 abc
2 B 2 0.2 def
3 C 3 0.3 xyz
```

Select random rows (in non-sequential order)

```
df[c(1, 3:5), ]
# output
col1 col2 col3 col4
1 A 1 0.1 abc
3 C 3 0.3 xyz
4 D 4 0.4 lmn
5 E 5 0.5 pqr
```

### Subset Data Frame from Data Frame

Select rows and columns (a subset of DataFrame) using row and column indexes,

```
df[1:3, 2:3]
# output
col2 col3
1 1 0.1
2 2 0.2
3 3 0.3
```

## Enhance your skills with courses on R

- R Programming
- Data Science: Foundations using R Specialization
- Data Analysis with R Specialization
- Getting Started with Rstudio

If you have any questions, comments or recommendations, please email me at
**reneshbe@gmail.com**

This work is licensed under a Creative Commons Attribution 4.0 International License

Some of the links on this page may be affiliate links, which means we may get an affiliate commission on a valid purchase. The retailer will pay the commission at no additional cost to you.