Tengo dos trama de datos en R.fusionar dos trama de datos basada en la coincidencia de dos columnas intercambiables en cada trama de datos
trama de datos 1
A B C D E F G
1 2 a a a a a
2 3 b b b c c
4 1 e e f f e
trama de datos 2
X Y Z
1 2 g
2 1 h
3 4 i
1 4 j
Quiero coincidir con la columna de dataframe1 A y B con las columnas X e Y del dataframe2 NO son comparaciones por pares, es decir, la fila 1 (A = 1 B = 2) se considera igual que la fila 1 (X = 1, Y = 2) y la fila 2 (X = 2, Y = 1) del dataframe 2.
Cuando se puede encontrar la coincidencia, me gustaría agregar las columnas C, D, E, F de dataframe1 a la fila coincidente de dataframe2, de la siguiente manera: sin concordancia como na.
trama de datos final
X Y Z C D E F G
1 2 g a a a a a
2 1 h a a a a a
3 4 i na na na na na
1 4 j e e f f e
sólo puedo saber cómo hacer a juego para una sola columna, sin embargo, cómo hacer juego para dos columnas intercambiables y la fusión de dos tramas de datos en base a los resultados de coincidencias es difícil para mí. Pls amablemente ayuda a ofrecer una forma inteligente de hacer esto.
Para facilitar la discusión (gracias por los comentarios de Vincent y Dwin (mi quesiton anterior) que deba probar la cita.) Hay la cuota de trama de datos de carga 1 y 2 a R.
df1 <- data.frame(A = c(1,2,4), B=c(2,3,1), C=c('a','b','e'),
D=c('a','b','e'), E=c('a','b','f'),
F=c('a','c','f'), G=c('a','c', 'e'))
df2 <- data.frame(X = c(1,2,3,1), Y=c(2,1,4,4), Z=letters[7:10])
¿Cómo manejas las colisiones? Es decir, ¿cuándo df1 tiene X = 1 e Y = 2 y X = 2 e Y = 1 en filas? ¿Estás garantizado que eso no sucederá? – mcpeterson