Open In App

How to Delete DataFrames in R?

Last Updated : 16 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In R, a DataFrame is a data structure which can be two-dimensional, that is it can be used to hold data in rows and columns. To create a DataFrame, you can use the data.frame() function. but after you’re done with a DataFrame, you may wish to remove it so that memory can be released or your workspace can be efficiently handled.

Create Dataframe for demonstration:

To illustrate the deletion process, let’s first create three DataFrames.

R
d1 = data.frame(names=c("sravan","ojaswi"),
                   address=c("delhi","hyd"))

d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))

d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))

print(d1)
print(d2)
print(d3)

Output
   names address
1 sravan   delhi
2 ojaswi     hyd
   names marks
1 sravan    98
2 ojaswi    90
   names age
1 sravan  23
2 ojaswi  17

Checking Existing DataFrames

Before deleting the dataframe we have to check how many and what are the dataframes exists, we can get this by using ls() function. This will return the current variables that exists in an environment

R
d1 = data.frame(names=c("sravan","ojaswi"),
                   address=c("delhi","hyd"))

d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))

d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))
ls()

Output
[1] "d1" "d2" "d3"

Method 1: Using rm() methods

The rm() function is used to remove variables or objects from the R environment. You can use this function to delete specific DataFrames.

Syntax:

rm(dataframe)

where dataframe is the name of the existing dataframe

Example: R program to create three dataframes and delete two dataframes

R
d1= data.frame(names=c("sravan","ojaswi"),
                  address=c("delhi","hyd"))
                  
d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))
                   
d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))

# delete all dataframes
rm(list = ls(all=TRUE)[sapply(mget(ls(all =TRUE)), 
                            class) == "data.frame"])
ls()

Output
character(0)

We can also delete multiple dataframes separated by comma using rm() function:

Syntax:

rm(“dataframe1″,”datafame2″,……,”dataframe n”)

R
d1 = data.frame(names=c("sravan","ojaswi"),
                   address=c("delhi","hyd"))
                   
d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))

d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))

# delete dataframe1, dataframe2
rm("d1","d2")

ls()

Output
[1] "d3"

We can also delete all dataframes by using sapply()

If you want to delete all DataFrames from your workspace, you can use the sapply() function in combination with rm().This method removes all objects of the class “data.frame” from the environment.

Syntax:

rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), class) == “data.frame”])

R
d1= data.frame(names=c("sravan","ojaswi"),
                  address=c("delhi","hyd"))
                  
d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))

d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))

# delete all dataframes
rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), 
                            class) == "data.frame"])
ls()

Output
character(0)

Method 2: Using grepl() function

Another approach is to use the grepl() function, which allows you to match variable names based on a pattern. This is useful when you want to delete all DataFrames whose names match a certain pattern (e.g., all DataFrames starting with “data”).

Syntax:

rm(list = ls()[grepl(“pattern”, ls())])

Example: Deleting All DataFrames Using a Pattern

If you want to delete all DataFrames whose names start with “data”, you can use the following code:

R
d1 = data.frame(names=c("sravan","ojaswi"),
                   address=c("delhi","hyd"))

d2 = data.frame(names=c("sravan","ojaswi"),
                   marks=c(98,90))

d3 = data.frame(names=c("sravan","ojaswi"),
                   age=c(23,17))

# delete all dataframes
rm(list = ls()[grepl("data", ls())])

ls()

Output
[1] "d1" "d2" "d3"


Next Article
Article Tags :

Similar Reads