由于缺少更好的词,我如何将“补丁”应用于 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
我想让公司“一个”将出口“1”卖给公司“红色”,我在另一个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
矢量,并且子集也不是很有效。但我最不喜欢的是我必须写出匹配的列。