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 |
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 |
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") |
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 |
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.