Sé que puedo utilizar el plyr
y sus amigos para combinar tramas de datos, y merge
así, pero hasta ahora no saben cómo combinar dos tramas de datos con múltiples columnas basadas en 2 columnas?¿Cómo combino dos marcos de datos basados en dos columnas?
Respuesta
Consulte la documentación sobre ?merge
, que establece:
By default the data frames are merged on the columns with names they both have,
but separate specifications of the columns can be given by by.x and by.y.
Esto implica claramente que merge
se fusionarán tramas de datos basado en más de una columna. Desde el último ejemplo dado en la documentación:
x <- data.frame(k1=c(NA,NA,3,4,5), k2=c(1,NA,NA,4,5), data=1:5)
y <- data.frame(k1=c(NA,2,NA,4,5), k2=c(NA,NA,3,4,5), data=1:5)
merge(x, y, by=c("k1","k2")) # NA's match
Este ejemplo estaba destinado a demostrar el uso de incomparables
, pero ilustra la fusión usando varias columnas también. También puede especificar columnas separadas en cada uno de x
y y
usando by.x
y by.y
.
@darkage Esta pregunta se refiere a la fusión de marcos de datos. Parece que tienes data.tables. Totalmente diferente. Leería la documentación para data.table. – joran
Esperanza esto ayuda;
df1 = data.frame(CustomerId=c(1:10),
Hobby = c(rep("sing", 4), rep("pingpong", 3), rep("hiking", 3)),
Product=c(rep("Toaster",3),rep("Phone", 2), rep("Radio",3), rep("Stereo", 2)))
df2 = data.frame(CustomerId=c(2,4,6, 8, 10),State=c(rep("Alabama",2),rep("Ohio",1), rep("Cal", 2)),
like=c("sing", 'hiking', "pingpong", 'hiking', "sing"))
df3 = merge(df1, df2, by.x=c("CustomerId", "Hobby"), by.y=c("CustomerId", "like"))
Suponiendo df1$Hobby
y df2$like
significan la misma cosa.
- 1. Pegar columnas de dos marcos de datos
- 2. ¿Cómo combino/fusiono columnas de dos resultados de consulta SQL?
- 3. ¿Cómo comparar dos marcos de datos?
- 4. Combinar dos marcos de datos y eliminar columnas duplicadas
- 5. Aplicar sobre dos marcos de datos
- 6. bash - instersection de dos archivos basados en columnas específicas?
- 7. Agregar dos marcos de datos de pandas
- 8. ¿Cómo combino dos interfaces al crear simulaciones?
- 9. ¿Cómo combino dos consultas (unión de todo) en una fila?
- 10. Div en dos columnas
- 11. Giro de datos usando dos columnas
- 12. ¿Cómo combino dos vectores de diferente longitud en I
- 13. ¿Cómo combino dos listas en un diccionario en Python?
- 14. MySQL, Concatene dos columnas
- 15. ¿Cómo actualizar dos columnas en una base de datos MySQL?
- 16. Combina dos marcos de datos por filas (rbind) cuando tienen diferentes conjuntos de columnas
- 17. ¿Cómo combino dos listas en una sola lista?
- 18. Solicite dos NSMutableArrays basados en uno
- 19. ¿Cómo combino dos características de los complementos de vim wiki?
- 20. SQL: ¿Cómo encontrar duplicados basados en dos campos?
- 21. ¿Cómo combino dos consultas de Lucene con OR?
- 22. ¿Cómo combino los resultados de dos consultas con el pedido?
- 23. División de dataframe utilizando dos columnas de datos y aplicar transformación común en la lista de marcos de datos resultantes
- 24. ¿Cómo actualizar dos columnas en una declaración?
- 25. Clave principal de dos columnas en MySQL
- 26. deduplicado SQL de dos columnas
- 27. Seleccionar registros entre dos fechas en dos columnas
- 28. ¿Cómo seleccionar dos columnas como una sola?
- 29. ¿Cómo hacer un LIKE considerando dos columnas?
- 30. Cómo enlazar solo las columnas comunes de dos conjuntos de datos
La respuesta proporcionada (http://stackoverflow.com/q/1299871/) solamente se une basa en una columna ("CustomerId"), así que no creo que esto es un duplicado. ¿Alguien puede 'duplicar' esta pregunta? – Lennert