用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。