我想在RStudio中合并两个不同的数据集而不进行行乘法。也就是说,我想保留第一个数据集的所有行(我使用merge(all.x=TRUE, ...)
),但是如果第二个数据集有多个值,我不希望第一个数据集的行相乘
实施例
苹果4.99
橘子3.89
香蕉2.65
&安培;
苹果红
苹果绿色
橘子橙
所以,在我合并了两张桌子后,我想要水果,价格和颜色,但我不想让苹果提到两次:我想要或者只有一种颜色,或者两者合并在一起。
有人知道解决方案吗?感谢。
答案 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