2016-11-16 4 views
2

하나의 객체를 제외하고 R에서 모든 것을 제거하는 방법에 대한 아이디어가 있습니까? rm() 특정 객체를 제외한 모든 객체

rm(list=ls()) 

그래서 내가 시도 :
rm(c(list=ls()-my_object)) 

가 있지만 작동하지 않았다 일반적으로 모든 I 코드를 제거합니다.

+5

'RM은 (목록 = setdiff (LS(), "my_object"))' – SymbolixAU

+0

@SymbolixAU를 제외하고 사용자 환경에 이르기까지 모든 것을 제거한다고 가정 그 대답은 – smci

+1

으로'rm (list = ls() [! ls() % in % 'myobject'])'할 수도 있습니다. –

답변

4

setdiff() 함수는 집합 간의 차이를 보여 주므로 모든 개체 (ls())와 보존 할 개체의 차이를 나타 내기 위해이 함수를 사용할 수 있습니다. 예를 들어

## create some objects 
df <- data.frame() 
v <- as.numeric() 

# show everything in environment 
objects() 
# [1] "df" "v" 

## or similarly 
ls() 
# [1] "df" "v" 

## the setdiff() funciton shows the difference between two sets 
setdiff(ls(), "df") 
# [1] "v" 

# so we can use this to remove everything except 'df' 
rm(list = setdiff(ls(), "df")) 
objects() 
# [1] "df" 
+0

최근에 많은 다운 표를 얻는 것처럼 보입니다. 팬이있는 것 같습니다. – SymbolixAU

0

오래 전에 물어 보았습니다. 게시물 : 미래에 다른 사람을 도울 수 내 대답은, 는 obj1obj2

x<- which(ls()=="obj1"|ls()=="obj2") 
ls1<- ls()[-x] 
rm(list = ls1)