Encuentra la unión de una columna entre filas coincidentes de marcos de datos de una lista en R.
Tengo una lista de marcos de datos. Me gustaría tomar la unión de los valores de columna en todos los marcos de datos cuando los nombres de columna entre los marcos de datos coincidan.
Aquí hay un conjunto de datos de prueba.
df1 <- data.frame(group = c(“G1”, “G1”, “G1”, “G1”, “G1”, “G2”, “G2”, “G2”, “G1”, “G1”),
Name = c(“B”, “B”,”B”, “A”, “A”,’D’,”D” , “E”, “C”, “C”), value = c(2,4,5,2,4,7, 1, 2,4,1))
df2 <- data.frame(group = c(“G1”, “G1”, “G1”, “G1”, “G2”, “G2”, “G2”, “G2” , “G1”, “G1”),
Name = c(“B”, “B” , “A”, “A”, “D”, “E”, “E”, “E”, “C”, “C”), value = c(2, 3, 5, 1, 7, 2, 4, 8, 9,1))
df <- rbind(df1, df2)
df.list <- split(df, f=df$group)
La salida deseada es la siguiente:
B = 2,3,4,5
A = 1,2,4,5
D = 1,7
E = 2,4,8
C = 1,4,9
davy.ai
Para obtener el resultado deseado, podemos usar el paquete
dplyr
para agrupar los data frames por la columnaName
y utilizar la funciónunion
para combinar los valores de las columnas.Aquí está el código para lograr esto:
Esto dará el resultado deseado, donde cada
Name
tendrá su correspondientevalue
en un formato combinado y ordenado.