How to remove a subset from a DataFrame in R ?

23 May, 2021
A subset is a combination of cells that form a smaller data frame formed out from the original data frame. A set of rows and columns can be removed from the original data frame to reduce a part of the data frame. The subset removal can be based on constraints to which rows and columns are subjected to. In this article, we will see how to remove subset from a DataFrame in R Programming Language.
Method 1: Using anti_join() method.
anti_join() method in this package is used to return all the rows from the first data frame with no matching values in y, keeping just columns from the first data frame. It is basically a selection and filter tool. The row numbers of the original data frame are not retained in the result returned. 
Syntax: anti_join ( x , y , by = c(..))
Arguments : 
x : The first data frame
y : The second data frame
by (Optional ) : To consider which column as the key for filtering data.
Returns : The first data frame rows that are not in second data frame. 
Code:
R
# loading the librarylibrary("dplyr")  # declaring data framedata_frame <- data.frame(col1 = c(2, 4, 6, 10),                         col2 = c(4, 6, 8, 5),                         col3 = c(8, 10, 12, 20),                         col4 = letters[1 : 4])  print ("Original Dataframe")print (data_frame)  # creating subset dataframesubset <- data.frame(col1 = c(2 , 6),                     col2 = c(4 , 8))  # removing subset data framedata_frame_mod <- anti_join(data_frame,subset)print ("Modified Dataframe")print (data_frame_mod)
Output:
[1] "Original Dataframe" 
col1 col2 col3 col4 
1    2    4    8    a 
2    4    6   10    b 
3    6    8   12    c 
4   10    5   20    d 
[1] "Modified Dataframe" 
col1 col2 col3 col4 
1    4    6   10    b 
2   10    5   20    d
In case, the second data frame columns belong to different rows of the first data frame, we can specify the column values to take, using the “by” argument in the anti_join() method. 
R
library("dplyr")  # declaring data framedata_frame <- data.frame(col1 = c(2, 4, 6, 10),                         col2 = c(4, 6, 8, 5),                         col3 = c(8, 10, 12, 20),                         col4 = letters[1 : 4])print ("Original Dataframe")print (data_frame)subset <- data.frame(col1 = c(2 , 4),                     col4 = c("a" , "d") )data_frame_mod <- anti_join(data_frame,                            subset, by = "col4")print ("Modified Dataframe")print (data_frame_mod)
Output:
[1] "Original Dataframe" 
col1 col2 col3 col4 
1    2    4    8    a 
2    4    6   10    b 
3    6    8   12    c 
4   10    5   20    d 
[1] "Modified Dataframe" 
col1 col2 col3 col4 
1    4    6   10    b 
2    6    8   12    c 
Method 2: Using %in% operator
The %in% operator is used to check for the existence of a value in the vector. It returns a logical value, in case the value is present, else False. 
val %in% vec
The particular column of the first data frame is checked for values in the second data frame, and the rows are returned which are not present in the second data frame. The row numbers of the original data frame are retained during the application of this operator. 
R
library("dplyr")  # declaring data framedata_frame <- data.frame(col1 = c(2, 4, 6, 10),                         col2 = c(4, 6, 8, 5),                         col3 = c(8, 10, 12, 20),                         col4 = letters[1 : 4])  print ("Original Dataframe")print (data_frame)  # creating second data framesubset <- data.frame(col1 = c(2 , 4),                     col2 = c("a" , "d"))data_frame_mod <- data_frame[data_frame$col4 %in% subset$col2, ]print ("Modified Dataframe")print (data_frame_mod)
Output:
[1] "Original Dataframe"
  col1 col2 col3 col4
1    2    4    8    a
2    4    6   10    b
3    6    8   12    c
4   10    5   20    d
[1] "Modified Dataframe"
  col1 col2 col3 col4
2   4    6   10    b
3   6    8   12    c 
Picked
R DataFrame-Programs
R-DataFrame
R Language
R Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Change Color of Bars in Barchart using ggplot2 in R
How to Split Column Into Multiple Columns in R DataFrame?
Group by function in R using Dplyr
How to Change Axis Scales in R Plots?
R - if statement
How to Split Column Into Multiple Columns in R DataFrame?
How to filter R DataFrame by values in a column?
Replace Specific Characters in String in R
Merge DataFrames by Column Names in R
How to Sort a DataFrame in R ?