我想从内存中删除一些data.frames。这适用于
remove(ttest,inherits=T)
现在我不想为我使用的每一个数据写出来,所以我考虑使用lapply:
lapply(tablenames,remove)
其中tablenames只是一个包含表名的列表:
tablenames
[[1]]
[1] ttest
Levels: testsheet ttest ttest2
[[2]]
[1] testsheet
Levels: testsheet ttest ttest2
[[3]]
[1] ttest2
Levels: testsheet ttest ttest2
我总是收到错误:
FUN中的错误(X [[i]],...):... muss Namen oder Zeichenketten enthalten
转换为“必须包含名称或字符串”。
接下来我尝试将remove函数包装到另一个函数中,同时给它继承= T参数:
clean <- function(table) {rm(table, inherits=T)}
> lapply(tablenames,clean)
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
桌子还在那里。我能做什么?谢谢。
答案 0 :(得分:4)
你不需要做任何复杂的事情。如果tablenames
是要删除的对象名称的字符向量,则
rm(list = tablenames, inherits = TRUE)
会做我认为你想做的事。
答案 1 :(得分:1)
我们应该使用lapply
:
unlist
rm(list = unlist(tablenames))