这当然是一个简单的问题,但我找不到解决方案。
我想通过删除不再需要的变量来保留环境。
我不理解ls()
可以列出它们,而ls()[[i]]
以字符串形式返回变量的名称。
因此,如果我想删除10号,可以说是变量age,ls()[[10]]
将返回“ age”,而我想做类似rm(ls()[[10])
的操作,但是它不起作用。我不知道要强制rm(ls([10]))
等同于rm(age)
。
我想我需要强制对字符串“ age”进行一些评估以返回变量age,但是在R文档中找不到正确的函数。
谢谢您的帮助。
答案 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)