Es normal que te esté dando ese resultado. Las columnas "y" de df1 y de df2 no son iguales...
Si pruebas con "dplyr" el resultado es este: > library(dplyr) > left_join(df1, df2) Joining, by = c("id", "y") id y z x 1 a1 1 3 NA 2 a2 2 5 NA 3 a3 3 6 NA 4 a4 4 7 7 Que a lo mejor es lo que quieres... Saludos, Carlos Ortega www.qualityexcellence.es El 9 de octubre de 2017, 12:45, Jesús Para Fernández < j.para.fernan...@hotmail.com> escribió: > Buenas, > > Tengo dos data.frames de la siguiente manera > > library(data.table) > id<-c("a1","a2","a3","a4") > id2<-c("a2","a3","a1","a4") > y<-c(1,2,3,4) > z<-c(3,5,6,7) > k<-c(1,3,8,7) > > df1<-data.table(id,y,z) > > id<-c("a2","a3","a1","a4") > df2<-data.table(id,x,y) > > Quiero que el resultado sea solo el LEFT JOIN, es decir, que me devuelva: > > resultado--> id,x,y,z > > Para ello pruebo, tal y como dicen en: > https://rstudio-pubs-static.s3.amazonaws.com/52230_ > 5ae0d25125b544caab32f75f0360e775.html > > merge(df1,df2,by="id",all.x=TRUE) > > Pero me devuelve: > > id y.x z x y.y > 1: a1 1 3 3 3 > 2: a2 2 5 0 1 > 3: a3 3 6 2 2 > 4: a4 4 7 1 4 > > > Es decir, me está duplicando la columna y. > > He probado con data.frame y usando all=FALSE, all.x=T,... pero no lo > consigo. > > ¿Alguna idea de como puedo hacerlo? > > Gracais > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es