如何合并两个数据框并从R中的重复行中选择最低值

时间:2013-11-28 02:24:49

标签: r

我有两个数据框xy

> x <- data.frame(name = c("foo","bar"), c1 = c(0.1,0.2), c2=c("y","w"))
> x
  name  c1 c2
1  foo 0.1  y
2  bar 0.2  w
> y <- data.frame(name = c("foo","bar","qux"), c1 = c(0.3,0.2,0.8), c2=c("k","w","z"))
> y
  name  c1 c2
1  foo 0.3  k
2  bar 0.2  w
3  qux 0.8  z

实际上,该列可能超过c2。 我想要做的是合并它们,以便产生这个:

name c1 c2
foo 0.1 y
bar 0.2 w
qux 0.8 z

请注意,合并时以及有两行具有相同namec1值不同的行时 我们选择一个c1最低的c2,c3,c4....,无论merge(x,y,by='name')中的值如何?我如何实现这一目标?

我尝试了{{1}}命令,但没有按预期工作。

1 个答案:

答案 0 :(得分:2)

unique.data.table有一个by参数可供您使用。
结合order(c1),以便“first”元素也是每个c1的{​​{1}}分钟

name