0
私は最近、raster
パッケージからsetValues()
フォームを見つけましたが、この機能の使用例は何か不思議です。setValuesラスタの使用例
r <- raster(ncol=10, nrow=10)
#setValues Function
r <- setValues(r, values=1, index=10)
#Normal indexing
r[10] <- 1
両方の方法で同じ結果が得られます。しかし、ドキュメントは述べている:
あなたは直接オブジェクトの「値」スロットにアクセスすることができますが、あなた 値を設定する際に、複数の スロットを変更する必要があるため、あなた自身の危険を覚悟でそれを行うだろう。これらの機能が果たす機能です。
ここでは、perilの意味は何ですか?また、setValues関数ではなく通常のサブセットを使用するとき、またはパフォーマンスの面で利点がある場合、どのスロットが変更されないままになりますか?
著者が直接の修正'値'スロットでは、次のようなことはしません。 'r < - raster(matrix(1:9、nc = 3)); r @ data @ values < - 100 *(1:9) 'となります。あなたがそのような猿のように、低レベルのデータ構造を直接変更する場合、あなたはそれを直接認識することなく、あなたのために行われた素敵なものをたくさんバイパスしています。 'values'データスロットの直前と直後に' minValue(r) 'を実行してみてください。そして 'setValues'があなたのために行うことをより詳細に見るために、' getMethod( "setValues"、 "RasterLayer") 'を実行してください。 –
注意:コードブロックの2番目と3番目のコード行は、実際には全く同じことをしていません。 –