在R环境中删除选定的变量

时间:2018-11-12 20:27:43

标签: r

这当然是一个简单的问题,但我找不到解决方案。

我想通过删除不再需要的变量来保留环境。

我不理解ls()可以列出它们,而ls()[[i]]以字符串形式返回变量的名称。

因此,如果我想删除10号,可以说是变量age,ls()[[10]]将返回“ age”,而我想做类似rm(ls()[[10])的操作,但是它不起作用。我不知道要强制rm(ls([10]))等同于rm(age)

我想我需要强制对字符串“ age”进行一些评估以返回变量age,但是在R文档中找不到正确的函数。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:2)

list的{​​{1}}参数将为您提供帮助。它接受一个字符向量。考虑:

rm

例如运行

age <- 1
rm(list = "age")  # Same effect as rm(age)
age
#Error: object 'age' not found

将清除指定环境中的所有个可见对象。

根据您的情况,rm(list = ls()) 会做您想要的。但是,请注意rm(list = ls()[10])总是返回排序的字符向量,因此第十项可以很容易地更改。您可能想要执行以下操作

ls()

答案 1 :(得分:2)

以下内容如何:

1:抓取环境中的列表,

2:定义要删除的项目,

3:按您要删除的项目过滤列表

4:然后将其删除

    list <- ls()
    to_remove <- c("Item1", "Item2")
    list_to_remove <- list[ list %in% to_remove]
    list_to_remove

    rm(list=list_to_remove)