답변:
패키지 의 keep
기능을 사용하는 gdata
것이 매우 편리합니다.
> ls()
[1] "a" "b" "c"
library(gdata)
> keep(a) #shows you which variables will be removed
[1] "b" "c"
> keep(a, sure = TRUE) # setting sure to TRUE removes variables b and c
> ls()
[1] "a"
방금 비슷하지만 약간 다른 질문에 대한 답을 찾기 위해 몇 시간을 보냈습니다. 소수의 벡터를 제외하고 R의 모든 객체 (함수 포함)를 삭제할 수 있어야했습니다.
이를 수행하는 한 가지 방법 :
rm(list=ls()[! ls() %in% c("a","c")])
유지하려는 벡터의 이름은 'a'와 'c'입니다.
이것이 동일한 솔루션을 찾는 사람에게 도움이되기를 바랍니다!
rm(list=setdiff(ls(), c("a", "c")))
있을까요? @Andrie의 답변을 참조하십시오.
이름이 패턴과 일치하는 모든 객체를 유지하려면 grep
다음과 같이 사용할 수 있습니다 .
to.remove <- ls()
to.remove <- c(to.remove[!grepl("^obj", to.remove)], "to.remove")
rm(list=to.remove)
v
유지하려는 객체의 이름으로 바꿉니다.
rm(list=(ls()[ls()!="v"]))
모자 팁 : http://r.789695.n4.nabble.com/Removing-objects-and-clearing-memory-tp3445763p3445865.html
유지하고 싶지 않은 동일한 패턴을 가진 많은 객체가있는 경우 ls()
의 pattern
옵션을 활용 합니다.
> foo1 <- "junk"; foo2 <- "rubbish"; foo3 <- "trash"; x <- "gold"
> ls()
[1] "foo1" "foo2" "foo3" "x"
> # Let's check first what we want to remove
> ls(pattern = "foo")
[1] "foo1" "foo2" "foo3"
> rm(list = ls(pattern = "foo"))
> ls()
[1] "x"
rm
함수는 항상 조심스럽게 사용해야한다고 생각합니다 (쉘에서 더 그렇습니다!). 귀하의 질문에 대한 답변은 내 편집을 참조하십시오.
require(gdata)
keep(object_1,...,object_n,sure=TRUE)
ls()
다음은 콘솔에서 모든 객체를 제거합니다.
rm(list = ls())