2017-09-25 7 views
0

リピートループの終了後にオブジェクトを削除しようとしていますが、警告メッセージ "In rm(" games "):オブジェクト 'ゲーム'が見つかりませんでした。しかし、それはまだ地球規模の環境にあります(私はそれを最初から削除したいのです)。なぜこれが起こり、ループの最後に "ゲーム"を取り除くことができますか? rmのヘルプを読むリピートループ中にオブジェクトが見つかりませんでしたが、グローバル環境でも表示されます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

あなたがinherits=TRUEを使用して、すべての親のフレームを通過することを指示しない限り、それだけで、指定されたフレーム(この場合は単なる関数環境)から削除されます。だから、使用:

RM(「ゲーム」、= TRUEを継承)

注これは、その環境外で何かを削除行くための機能のために、おそらく非常に良いスタイルではありませんが、あなたはおそらく非常に良い理由があります。.. 。

+0

ありがとう!私は助けを読んでいないので今は馬鹿だと感じる – Calcium237

関連する問題