Слияние двух информационных фреймов создает больше строк, чем исходных данных в R - PullRequest
0 голосов
/ 30 сентября 2019

Я хотел бы объединить два фрейма данных в одну таблицу. Таким образом, что столбец 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

Код отлично работает для этих данных. Но у меня есть сотни наблюдений, и после использования приведенного выше кода я получаю гораздо больше наблюдений, чем в исходных данных. Я искал много решений и не нашел правильного, каждый раз, когда слияние создает слишком много наблюдений. Я понимаю, что строки дублировать, но я не знаю, как это исправить. Пожалуйста, помогите мне.

...