【发布时间】:2011-03-12 12:46:50
【问题描述】:
我正在尝试弄清楚如何使用merge() 来更新数据框。
以数据框foo为例
foo <- data.frame(index=c('a', 'b', 'c', 'd'), value=c(100, 101, NA, NA))
具有以下值
index value
1 a 100
2 b 101
3 c NA
4 d NA
还有数据框bar
bar <- data.frame(index=c('c', 'd'), value=c(200, 201))
具有以下值:
index value
1 c 200
2 d 201
当我运行以下 merge() 函数来更新 c 和 d 的值时
merge(foo, bar, by='index', all=T)
结果如下:
index value.x value.y
1 a 100 NA
2 b 101 NA
3 c NA 200
4 d NA 201
我希望merge() 的输出避免在此特定示例中创建value.x 和value.y 但只保留value 的原始列有没有一种简单的方法来做到这一点?
【问题讨论】:
-
如果没有空值,结果应该是什么?
-
你有没有得到这个问题的答案?我正在为同样的问题寻找解决方案。
-
我也想知道为什么没有合并,比如说
overwrite=TRUE参数,当提供by时会启动。每次想要重新运行合并时手动删除列是不合时宜的。 -
我刚刚遇到了同样的问题,我认为对您的问题最直接的回答是@jangorecki 的回答,您应该在下面接受