2017-06-24 8 views
1

以下を実行すると、xの値が変わるたびに変化するアドレスです。R言語オブジェクトは、値を変更しようとするたびに変更に対処しますか?

library(pryr) 
x <- x + 10 
address(x) 
tracemem(x) 
x <- x + 10 
address(x) 
tracemem(x) 
x <- x + 10 
address(x) 
tracemem(x) 
x <- x + 10 
address(x) 
tracemem(x) 

何か理由がありますか?ありがとう。

+0

RStudioまたはRguiでこれを行いますか? – Roland

答えて

1

ハドレーの書籍(特にチャプター・オン・メモリ)は、おそらく説明に役立つ参考情報です。特に

、次の参考文献(X)が1である場合

は、修飾が所定の位置に発生します。 refs(x)が の場合、Rはコピーを作成します(これにより、オブジェクト への他のポインタは影響を受けません)。

あなたが遭遇したことはRは「変更にコピー」と新しい参照を作成している設定です。この章で説明しているように、Rが修正時にコピーし、修正する場合があります。

関連する問題