我有两个数据框x
和y
:
> 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
请注意,合并时以及有两行具有相同name
但c1
值不同的行时
我们选择一个c1
最低的c2,c3,c4....
,无论merge(x,y,by='name')
中的值如何?我如何实现这一目标?
我尝试了{{1}}命令,但没有按预期工作。
答案 0 :(得分:2)
unique.data.table有一个by
参数可供您使用。
结合order(c1)
,以便“first”元素也是每个c1
的{{1}}分钟
name