[R-es] Merge me agrega siempre las columnas

Carlos Ortega cof en qualityexcellence.es
Lun Oct 9 13:46:19 CEST 2017


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.fernandez en 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 en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es