我想做一些与这个问题非常相似的事情:如何使用 merge() 更新 R 中的表 https://stackoverflow.com/questions/3190118/how-to-use-merge-to-update-a-table-in-r
但我不想只用一列作为索引,而是想匹配任意数量 >=1 的列上的新值。
foo <- data.frame(index1=c('a', 'b', 'b', 'd','e'),index2=c(1, 1, 2, 3, 2), value=c(100,NA, 101, NA, NA))
其具有以下值
foo
index1 index2 value
1 a 1 100
2 b 1 NA
3 b 2 101
4 d 3 NA
5 e 2 NA
和数据框栏
bar <- data.frame(index1=c('b', 'd'),index2=c(1,3), value=c(200, 201))
其具有以下值:
bar
index1 index2 value
1 b 1 200
2 d 3 201
合并(foo, bar, by='index', all=T)
其结果是这样的输出:
期望的输出:
foo
index1 index2 value
1 a 1 100
2 b 1 200
3 b 2 101
4 d 3 201
5 e 2 NA