より良い言葉がないため、R data.frame に「パッチ」を適用するにはどうすればよいですか? 会社とアウトレットの列を持つマスター データベースと、この例では 1 または 0 の所有権シェア変数があるとしますが、任意のパーセンテージになる可能性があります。
// master
firm outlet shares.pre
1 five 1 0
2 one 1 1
3 red 1 0
4 yellow 1 0
5 five 2 0
6 one 2 0
// many more
会社 "one" がアウトレット "1" を会社 "red" に販売させたいのですが、この取引は別の data.frame にあります。
// delta
firm outlet shares.delta
1 one 1 -1
2 red 1 1
R でこの「パッチ」またはトランザクションをマスター データベースに適用する最も効率的な方法は何ですか? 最終結果は次のようになります。
// preferably master, NOT a copy
firm outlet shares.post
1 five 1 0
2 one 1 0 <--- was 1
3 red 1 1 <--- was 0
4 yellow 1 0
5 five 2 0
6 one 2 0
// many more
接尾辞pre
、post
またはdelta
. それらすべてに名前が付けられshares
ていても問題ない場合は、これらのデータ フレームを「追加」したいだけです。
更新:私の現在のアプローチはこれです
update <- (master$firm %in% delta$firm) & (master$outlet %in% delta$outlet)
master[update,]$shares <- master[update,]$shares + delta$shares
はい、ベクトル スキャンを実行してブールupdate
ベクトルを作成すること、およびサブセット化もあまり効率的ではないことは承知しています。しかし、私が最も気に入らないのは、一致する列を書き出さなければならないことです。