2017-09-25 40 views
0

我試圖在重複循環完成後刪除對象,但我收到警告消息「In rm(」games「):沒有找到對象「遊戲」。但是,它仍然處於全球環境中(這就是爲什麼我想首先將其刪除)。爲什麼會發生這種情況,如何在循環結束時刪除「遊戲」?在重複循環期間找不到對象但仍出現在全局環境中R

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,它只能從指定的幀(在本例中僅有的功能環境)中刪除,除非你告訴它通過所有的父母去幀使用inherits=TRUE。因此,使用:

RM(「遊戲」,繼承= TRUE)

注意這可能不是風格很好的功能去刪除它的環境之外的東西,但你可能有一個很好的理由.. 。

+0

非常感謝!我現在感到很蠢,因爲沒有閱讀幫助 – Calcium237