在R中没有行乘法合并

时间:2015-07-29 17:21:52

标签: r merge

我想在RStudio中合并两个不同的数据集而不进行行乘法。也就是说,我想保留第一个数据集的所有行(我使用merge(all.x=TRUE, ...)),但是如果第二个数据集有多个值,我不希望第一个数据集的行相乘

实施例

  

苹果4.99

     

橘子3.89

     

香蕉2.65

&安培;

  

苹果红

     

苹果绿色

     

橘子橙

所以,在我合并了两张桌子后,我想要水果,价格和颜色,但我不想让苹果提到两次:我想要或者只有一种颜色,或者两者合并在一起。

有人知道解决方案吗?感谢。

1 个答案:

答案 0 :(得分:0)

首先,一些数据:

d1 <- data.frame(fruit=c('Apples','Oranges', 'Bananas'), price=c(4.99,3.89,2.65))
d2 <- data.frame(fruit=c('Apples','Apples', 'Oranges'), color=c('red', 'green', 'orange'))

请注意,我已命名列,以帮助合并。第一步是从fruit中删除重复的d2名称:

d3 <- aggregate(color ~ fruit, data=d2, FUN=paste, collapse=' ')

然后执行合并:

> merge(d1, d3)
    fruit price     color
1  Apples  4.99 red green
2 Oranges  3.89    orange