2017-09-25 6 views
0

반복 루프가 완료된 후 개체를 제거하려고하지만 "rm ("games ") 경고 메시지가 나타납니다. 개체 '게임'을 찾을 수 없습니다. " 그러나, 그것은 여전히 ​​지구 환경에 있습니다. 그래서 나는 그것을 처음부터 제거하고자합니다. 왜 이런 일이 일어나고 루프 끝에서 "게임"을 어떻게 제거 할 수 있습니까? 당신이 inherits=TRUE를 사용하여 프레임을 모든 부모를 통해 이동하도록 지시하지 않는 한반복 루프 중에 개체를 찾을 수 없지만 계속 글로벌 환경에서 나타납니다.

games <- data.frame(wins=c(0,2),seconds=c(2,0)) 

foo <- function(n) { 

    count <<- 0 
    repeat {  
    if (count == n) { 
     rm("games") 
     break 
    }  
    count <<- count + 1 
    cat("New count is",count,"\n")  
} 
} 

답변

1

rm에 대한 도움말을 읽고, 만, (이 경우 단지 함수 환경) 지정된 프레임에서 제거합니다. 그래서 사용

RM이 아마 함수가 환경 밖에서 뭔가를 삭제 이동하기에 매우 좋은 스타일하지 않습니다

주 ("게임", TRUE = 상속),하지만 당신은 아마 아주 좋은 이유가 .. .

+0

고마워요! 나는 지금 도움을 읽지 않은 것에 대해 어리 석다. – Calcium237