df1 <- data.frame(a=c(1,3),d=c("car","bike"))
df2 <- data.frame(a=c(1,1,2,3),b=c(1,1,2,2))
merge.data.frame(df1,df2,by.x="a", by.y="a", all.x=TRUE, all.y=FALSE)
ваше слияние сохраняет дубликаты
a d b
1 1 car 1
2 1 car 1
3 3 bike 2
уникальный или отдельный (tidyverse) удалит их.
Попробуйте tidyverse, это нормально, если вы начнете с R :)
Путь тидиверса:
library(dplyr)
df1 %>%
left_join(df2,by="a") %>%
distinct()