R:删除存储在列表中的所有变量

时间:2014-09-30 07:54:15

标签: r

如果变量名称存储在列表中,如何从特定环境中删除所有变量?

我有例如:

a<-"1"
b<-"2"
MyList<-list(a,b)
rm(MyList)

MyList已删除,但不是a和b我想删除(也是)。

2 个答案:

答案 0 :(得分:2)

简短的回答是你不能。

创建时

 NewThing <- list(oldThing1, oldThing2)

NewThing是它自己的新事物。它与oldThing1 and 2的唯一关系是价值。


现在,如果你有了

NewThing <- list(oldThing1 = oldThing1, oldThing2 = oldThing2)

然后你可以使用

rm(list=names(NewThing)) 

但这又与NewThingoldThing之间的关系无关。只是NewThing的名称恰好是您要删除的名称。

如果使用

,它的工作原理会相同
 NewThing <- list(oldThing1 = "Hello", oldThing2 = "There Dr Seuss")
 ..
 rm (list=names(NewThing))

答案 1 :(得分:0)

另一方面,您可以在使用a或{{{p}}创建b后从全局环境中删除变量MyListwith 1}}。这会保留within,但会移除MyLista

b

因此> a <- "1" > b <- "2" > MyList <- list(a, b) > with(MyList, rm(a, b, inherits = TRUE)) > a Error: object 'a' not found > b Error: object 'b' not found a已作为全局环境中的变量删除,但b仍然存在。要删除它们,您必须执行MyList

rm(MyList, a, b)