用rm()去除多个对象

我的记忆被一堆中间文件堵塞了(称之为temp1,temp2等)。 如果不一次一个地执行rm(temp1)rm(temp2) ,是否可以将它们从内存中删除? 我试过rm(list(temp1, temp2, etc.)) ,但似乎没有工作。

使列表成为一个字符向量(不是名称向量)

 rm(list = c('temp1','temp2')) 

要么

 rm(temp1, temp2) 

另一个解决schemerm(list=ls(pattern="temp")) ,删除所有匹配模式的对象。

或者使用正则expression式

 "rmlike" <- function(...) { names <- sapply( match.call(expand.dots = FALSE)$..., as.character) names = paste(names,collapse="|") Vars <- ls(1) r <- Vars[grep(paste("^(",names,").*",sep=""),Vars)] rm(list=r,pos=1) } rmlike(temp) 

如果你有很多temp'x',你可以尝试的另一个变化是(扩展@ mnel的答案)。

这里“n”可能是当前variables的数量

 rm(list = c(paste("temp",c(1:n),sep=""))) 

ls()会列出所有的variables。 所以如果你尝试rm(list=ls()) ,它会清除所有的variables。