[r] rm ()으로 여러 객체 제거

내 기억은 많은 중간 파일 (temp1, temp2 등)로 인해 막히고 있습니다. 그것은하지 않고 메모리에서 제거 할 수 있습니다 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)


답변

시도 할 수있는 또 다른 변형은 temp’x ‘가 많은 경우 (@mnel의 답변 확장)입니다.

여기서 “n”은 존재하는 임시 변수의 수입니다.

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


답변