R Subset Variables of data.frame by Logical Condition (2 Examples)

This article illustrates how to keep only variables where a logical condition is TRUE in R.

Example Data

data(iris)                                              # Example data
head(iris)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa

Example 1: Selecting Certain Data Frame Columns with Base R

iris_cols_1 <- iris[ , grepl("Width", colnames(iris))]  # Apply grepl
head(iris_cols_1)                                       # Show updated iris data
#   Sepal.Width Petal.Width
# 1         3.5         0.2
# 2         3.0         0.2
# 3         3.2         0.2
# 4         3.1         0.2
# 5         3.6         0.2
# 6         3.9         0.4

Example 2: Selecting Certain Data Frame Columns with dplyr Package

install.packages("dplyr")                               # Install & load dplyr
library("dplyr")

The following R code retains only variables that start with the prefix “Sepal”.

iris_cols_2 <- iris %>%                                 # Apply select & starts_with
  select(starts_with("Sepal"))
head(iris_cols_2)                                       # Show updated iris data
#   Sepal.Length Sepal.Width
# 1          5.1         3.5
# 2          4.9         3.0
# 3          4.7         3.2
# 4          4.6         3.1
# 5          5.0         3.6
# 6          5.4         3.9

Further Resources

Please find some related R tutorials in the following list.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu
Top