R:删除存储在列表中的所有变量
问题描述:
如果变量名称存储在列表中,如何从特定环境中删除所有变量?R:删除存储在列表中的所有变量
我有例如:
a<-"1"
b<-"2"
MyList<-list(a,b)
rm(MyList)
MYLIST被移除,但是不a和b,其欲被移除(以及)。
答
简短的回答是你不能。
当您创建
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))
答
在另一方面它的工作一样的,你可以你使用with
或within
创建MyList
之后,从全球环境取出可变因素a
和b
。这使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)
> MyList
[[1]]
[1] "1"
[[2]]
[1] "2"
'RM(MYLIST,A,B)' – 2014-09-30 08:07:11
,但我不想提a和b,因为我希望保持它的变量。我想说删除MyList和MyList中的所有变量名都需要删除 – MichiZH 2014-09-30 12:36:15