我想将两个数据帧组合到一个表中。以这样的方式,列a
对于两个数据帧都是公用的。我用合并功能做了一个简单的例子:
我的代码:
df2 <- data.frame(a = sample(1:100,100,replace = FALSE), b = sample(LETTERS[1:20],100,replace = TRUE),
x= rep(month.abb[1:10],10,replace = TRUE), y=rep(rownames(mtcars[10:19,]),10))
df1 <- data.frame(a = sample(1:100,50,replace = FALSE), b = sample(LETTERS[1:20],50,replace = TRUE),
x= rep(month.abb[1:10],5,replace = TRUE), y=rep(rownames(mtcars[10:19,]),5))
head(merge(df1,df2, by="a"))
a b.x x.x y.x b.y x.y y.y
1 1 R Oct Honda Civic S Jul Lincoln Continental
2 3 R May Merc 450SLC S Mar Merc 450SE
3 5 S Jun Cadillac Fleetwood T Feb Merc 280C
4 8 T Feb Merc 280C P Apr Merc 450SL
5 11 B Oct Honda Civic B Apr Merc 450SL
6 12 H Mar Merc 450SE H Sep Fiat 128
代码对此数据正常工作。但是我有数百个观察值,使用上述代码后,我得到的观察值比原始数据多得多。每当合并产生太多观察结果时,我都搜索了许多解决方案,但没有找到正确的解决方案。我知道要重复的行,但不知道如何解决。请帮助我。