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.