R의 작업 공간에서 하나를 제외한 모든 개체를 제거하려면 어떻게 해야 합니까?
많은 개체가 있는 작업 공간이 있는데 하나를 제외하고 모두 제거하려고 합니다.이상적으로 입력하지 않는 것이 좋습니다.rm(obj.1, obj.2... obj.n)
다음과 같이 표시할 수 있습니까?remove all objects but these ones
?
다음은 이를 수행하는 간단한 구성입니다.setdiff
:
rm(list=setdiff(ls(), "x"))
그리고 완전한 예를 들어보겠습니다.위험을 감수하고 실행 - 다음을 제외한 모든 변수를 제거합니다.x
:
x <- 1
y <- 2
z <- 3
ls()
[1] "x" "y" "z"
rm(list=setdiff(ls(), "x"))
ls()
[1] "x"
사용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"
다른 방법은 RStudio에서 작업 공간을 연 다음 환경의 오른쪽 상단에 있는 grid로 목록을 변경하는 것입니다(아래 이미지).그런 다음 지울 개체를 선택하고 마지막으로 지우기를 클릭합니다.
저는 비슷하지만 약간 다른 질문에 대한 답을 찾기 위해 몇 시간을 보냈습니다. 저는 소수의 벡터를 제외한 R의 모든 개체(함수 포함)를 삭제할 수 있어야 했습니다.
한 가지 방법:
rm(list=ls()[! ls() %in% c("a","c")])
여기서 제가 유지하고자 하는 벡터는 'a'와 'c'로 명명됩니다.
이것이 동일한 솔루션을 찾는 모든 사람에게 도움이 되기를 바랍니다!
이름이 패턴과 일치하는 모든 개체를 유지하려면 다음을 사용할 수 있습니다.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
개체 목록을 유지하려면 다음을 사용할 수 있습니다.
rm(list=setdiff(ls(), c("df1", "df2")))
이는 다음을 활용합니다.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"
require(gdata)
keep(object_1,...,object_n,sure=TRUE)
ls()
함수 내에서 모든 개체를 rm합니다.함수를 제외한 전역 환경
initialize <- function(country.name) {
if (length(setdiff(ls(pos = .GlobalEnv), "initialize")) > 0) {
rm(list=setdiff(ls(pos = .GlobalEnv), "initialize"), pos = .GlobalEnv)
}
}
환경에서 df를 제외한 모든 개체를 제거하려는 경우:
rm(list = ls(pattern="[^df]"))
다른 방법으로 생각해 봅시다, 만약 우리가 그룹을 제거하고 싶다면요?이것을 시도해 보세요.
rm(list=ls()[grep("xxx",ls())])
저는 개인적으로 화면에 너무 많은 테이블, 변수를 좋아하지 않지만 사용하지 않을 수 없습니다.그래서 저는 임시적인 것들의 이름을 "xxx"로 시작하여 더 이상 사용되지 않은 후에 제거할 수 있도록 이름을 붙입니다.
# remove all objects but selected
rm(list = ls()[which("key_function" != ls())])
이건 어때?
# Removes all objects except the specified & the function itself.
rme <- function(except=NULL){
except = ifelse(is.character(except), except, deparse(substitute(except)))
rm(list=setdiff(ls(envir=.GlobalEnv), c(except,"rme")), envir=.GlobalEnv)
}
언급URL : https://stackoverflow.com/questions/6190051/how-can-i-remove-all-objects-but-one-from-the-workspace-in-r
'source' 카테고리의 다른 글
프로젝트를 다른 프로젝트의 참조로 추가하는 방법 (0) | 2023.06.06 |
---|---|
Android Studio에서 "Android SDK 선택" 방법은 무엇입니까? (0) | 2023.06.06 |
수식 조건으로 "셀에 #N/A가 포함된 경우"를 사용합니다. (0) | 2023.05.31 |
UIAction시트 취소 버튼 이상 동작 (0) | 2023.05.31 |
UICollectionViewCell에 둥근 모서리 및 그림자 제거 추가 (0) | 2023.05.31 |