programing

작업 공간에서 몇 가지 특정 개체만 지우려면 어떻게 해야 합니까?

goodsources 2023. 7. 15. 10:04
반응형

작업 공간에서 몇 가지 특정 개체만 지우려면 어떻게 해야 합니까?

작업 공간에서 데이터를 제거하고 싶습니다.모두 지우기 버튼을 누르면 모든 데이터가 제거됩니다.하지만 특정 데이터만 삭제하고 싶습니다.

예를 들어, 데이터 섹션에는 다음과 같은 데이터 프레임이 있습니다.

data
data_1
data_2
data_3

제거하고 싶습니다.data_1,data_2그리고.data_3보관 중에data.

나는 노력했다.data_1 <- data_2 <- data_3 <- NULL데이터를 제거하지만 작업 공간 영역에 보관하기 때문에 원하는 작업이 완전히 수행되지 않습니다.

입력하면 답을 찾을 수 있습니다.?rm

rm(data_1, data_2, data_3)

이름이 붙은 유사 개체 집합 전체를 제거하는 유용한 방법은 다음과 같습니다.

rm(list = ls()[grep("^tmp", ls())])

따라서 이름이 "tmp" 문자열로 시작하는 모든 개체가 제거됩니다.

편집: Gsee의 의견에 따라, 다음을 활용합니다.pattern인수:

rm(list = ls(pattern = "^tmp"))

편집: Rafael의 의견에 대답하여 개체의 하위 집합만 유지하는 한 가지 방법은 유지하려는 데이터에 특정 패턴의 이름을 지정하는 것입니다.예를 들어 이름이 다음으로 시작하지 않는 모든 개체를 제거하려는 경우paper다음 명령을 실행합니다.

rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE))

다음 명령을 수행하면 됩니다.

rm(list=ls(all=TRUE))
  1. RStudio에서 다음 사항을 확인합니다.Environment탭 위치Grid(아닙니다.List) 모드.

  2. 환경에서 제거할 개체를 선택합니다.

  3. 빗자루 아이콘을 클릭합니다.

사용할 수 있습니다.apropos부분 이름을 사용하여 개체를 찾는 데 사용되는 함수입니다.

rm(list = apropos("data_"))

다음 명령을 사용합니다.

remove(list=c("data_1", "data_2", "data_3"))

변수 그룹 중 하나만 제거하려는 경우 목록을 만들고 필요한 변수만 유지할 수 있습니다.rm 함수는 "data"를 제외한 모든 변수를 제거하는 데 사용할 수 있습니다.스크립트는 다음과 같습니다.

0->data
1->data_1
2->data_2
3->data_3
#check variables in workspace
ls()
rm(list=setdiff(ls(), "data"))
#check remaining variables in workspace after deletion
ls()

#note: if you just use rm(list) then R will attempt to remove the "list" variable. 
list=setdiff(ls(), "data")
rm(list)
ls()
paste0("data_",seq(1,3,1)) 
# makes multiple data.frame names with sequential number
rm(list=paste0("data_",seq(1,3,1))
# above code removes data_1~data_3

RStudio를 사용하는 경우에는 절대로 접근 방식을 사용하지 않는 을 고려하십시오.* 대신, 자주 사용하는 워크플로우를 구축해야 합니다.Ctrl+Shift+F10R 세션을 다시 시작하기 위한 바로 가기.이 방법은 현재 사용자 정의 변수 집합을 해제하고 로드된 패키지, 장치 등을 지우는 가장 빠른 방법입니다.이 습관을 들이면 작품의 재현성이 현저하게 향상될 것입니다.

더 철저한 토론을 위해 Rstudio 커뮤니티의 이 훌륭한 스레드(h/t @kierisi)를 참조하십시오(주요 요점은 제가 이미 말한 것에 의해 포착되었습니다).

나는 R 코딩의 특징적인 스크립트의 처음 몇 년을 인정해야 합니다.rm"꼼수" -- 저는 R 경력을 시작할 수 있는 다른 사람들에게 조언하기 위해 이 답변을 씁니다.

*물론 이것에는 합법적인 사용이 있습니다 -- 매우 유사합니다.attach그러나 초기 사용자는 나중에 훨씬 더 나은 서비스(IMO)를 받을 수 있습니다.

ls() 및 remove()를 사용하여 하나의 방법을 추가

ls() 지정된 환경에 있는 개체의 이름을 제공하는 문자열의 벡터를 반환합니다.

ls()를 사용하여 환경에서 제거할 개체 목록을 만든 다음 remove()를 사용하여 제거합니다.

remove(list = ls()[ls() !=  "data"])

모든 데이터를 지우는 방법

을 클릭합니다.Misc>Remove all objects.

잘 부탁드립니다.

콘솔 지우기

을 클릭합니다.edit>Clear console.

코드가 필요 없습니다.

정숙한 동사도 사용할 수 있습니다.

# to remove specific objects(s)
rm(list = ls() %>% str_subset("xxx")) 
# or to keep specific object(s)
rm(list = setdiff(ls(), ls() %>% str_subset("xxx")))

어쩌면 이것도 도움이 될 수 있습니다.

remove(list = c(ls()[!ls() %in% c("what", "to", "keep", "here")] ) )

언급URL : https://stackoverflow.com/questions/11761992/how-do-i-clear-only-a-few-specific-objects-from-the-workspace

반응형