如何在 R 语言中删除 DataFrame?

在 R 语言中,DataFrame 是一种二维的数据结构,我们可以用它来以行和列的形式存储数据。我们可以使用 data.frame() 函数来创建 DataFrame。但是,当我们处理完一个 DataFrame 后,可能希望将其删除,以便释放内存或更高效地管理工作区。

创建演示用的 DataFrame

为了演示删除过程,让我们首先创建三个 DataFrame。


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)

输出

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

检查现有的 DataFrame

在删除 DataFrame 之前,我们需要先检查当前存在多少个 DataFrame 以及它们具体是什么。我们可以通过使用 ls() 函数来获取这些信息。该函数将返回当前环境中存在的所有变量。


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()

输出

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

方法 1:使用 rm() 方法

rm() 函数用于从 R 环境中删除变量或对象。我们可以使用这个函数来删除特定的 DataFrame。
语法

> rm(dataframe)

其中 dataframe 是现有 dataframe 的名称。

示例: 创建三个 dataframe 并删除其中两个的 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))

# 删除所有 dataframe
rm(list = ls(all=TRUE)[sapply(mget(ls(all =TRUE)), 
                            class) == "data.frame"])
ls()

输出

character(0)

我们还可以使用 rm() 函数删除多个 dataframe,只需用逗号分隔即可:

语法

> rm("dataframe1","datafame2",……,"dataframe n")


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

# 删除 dataframe1, dataframe2
rm("d1","d2")

ls()

输出

[1] "d3"

我们还可以使用 sapply() 删除所有 dataframe

如果我们想从工作区中删除所有的 DataFrame,我们可以结合使用INLINECODEf07f540d 函数和 INLINECODE8b8a2cf1。这种方法会从环境中删除所有属于 "data.frame" 类的对象。

语法

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


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

# 删除所有 dataframe
rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), 
                            class) == "data.frame"])
ls()

输出

character(0)

方法 2:使用 grepl() 函数

另一种方法是使用 grepl() 函数,它允许我们根据模式匹配变量名。当我们想要删除所有符合特定模式名称的 DataFrame(例如,所有以 "data" 开头的 DataFrame)时,这非常有用。

语法:

> rm(list = ls()[grepl("pattern", ls())])

示例: 使用模式删除所有 DataFrame

如果我们想删除所有名称以 "data" 开头的 DataFrame,我们可以使用以下代码:


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

# 删除所有 dataframe
rm(list = ls()[grepl("data", ls())])

ls()

输出

[1] "d1" "d2" "d3"
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/48771.html
点赞
0.00 平均评分 (0% 分数) - 0