使用rm()删除多个对象

  • 本文关键字:对象 删除 rm 使用 r
  • 更新时间 :
  • 英文 :


我的内存被一堆中间文件堵塞了(称为temp1temp2等),我想知道是否可以在不重复调用rm(即rm(temp1)rm(temp2))的情况下将它们从内存中删除?

我试过rm(list(temp1, temp2, etc.)),但似乎不起作用。

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

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

rm(temp1, temp2)

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

或使用正则表达式

"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)

您可以尝试的另一种变体是(扩展@mnel的答案)如果你有很多临时工。

这里,";n〃;可以是存在的温度变量的数量:

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

最新更新