Я хотел бы объединить два фрейма данных в одну таблицу. Таким образом, что столбец 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
Код отлично работает для этих данных. Но у меня есть сотни наблюдений, и после использования приведенного выше кода я получаю гораздо больше наблюдений, чем в исходных данных. Я искал много решений и не нашел правильного, каждый раз, когда слияние создает слишком много наблюдений. Я понимаю, что строки дублировать, но я не знаю, как это исправить. Пожалуйста, помогите мне.