[R-es] Merge me agrega siempre las columnas

jose luis pepeceb en yahoo.es
Lun Oct 9 13:48:40 CEST 2017


Hola
Entiendo que donde pusiste k<-c(1,3,8,7)                             querías poner
x<-c(1,3,8,7)

Si es correcto, creo que el problema es que al ser "y" una variable presente en las dos tablas, o la incluyes como argumento para el cruce o te saldrá "duplicada" (le añade un punto para diferenciarla).¿es esto lo que quieres?

merge(df1,df2,by=c("id", "y"),all.x=TRUE)

      id y z  x
    1: a1 1 3 NA
    2: a2 2 5 NA
    3: a3 3 6 NA
    4: a4 4 7  7 

    El Lunes 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

   
	[[alternative HTML version deleted]]



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