如果变量名称存储在列表中,如何从特定环境中删除所有变量?
我有例如:
a<-"1"
b<-"2"
MyList<-list(a,b)
rm(MyList)
MyList已删除,但不是a和b我想删除(也是)。
答案 0 :(得分:2)
简短的回答是你不能。
创建时
NewThing <- list(oldThing1, oldThing2)
NewThing
是它自己的新事物。它与oldThing1 and 2
的唯一关系是价值。
现在,如果你有了
NewThing <- list(oldThing1 = oldThing1, oldThing2 = oldThing2)
然后你可以使用
rm(list=names(NewThing))
但这又与NewThing
和oldThing
之间的关系无关。只是NewThing
的名称恰好是您要删除的名称。
如果使用
,它的工作原理会相同 NewThing <- list(oldThing1 = "Hello", oldThing2 = "There Dr Seuss")
..
rm (list=names(NewThing))
答案 1 :(得分:0)
另一方面,您可以在使用a
或{{{p}}创建b
后从全局环境中删除变量MyList
和with
1}}。这会保留within
,但会移除MyList
和a
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)