Tengo un marco de datos de sitios de aminoácidos, y quiero crear un nuevo marco de datos de cada combinación por pares de estos sitios.Pegar juntos cada par de columnas en un marco de datos en R?
Los datos originales se verá algo como esto:
df<-cbind(letters[1:5], letters[6:10], letters[11:15])
df
[,1] [,2] [,3]
[1,] "a" "f" "k"
[2,] "b" "g" "l"
[3,] "c" "h" "m"
[4,] "d" "i" "n"
[5,] "e" "j" "o"
Y lo que me gustaría es la siguiente:
newdf<-cbind(paste(df[,1],df[,2],sep=""),paste(df[,1],df[,3],sep=""),(paste(df[,2],df[,3],sep="")))
newdf
[,1] [,2] [,3]
[1,] "af" "ak" "fk"
[2,] "bg" "bl" "gl"
[3,] "ch" "cm" "hm"
[4,] "di" "dn" "in"
[5,] "ej" "eo" "jo"
Los datos reales pueden tener cientos de filas y/o columnas, por lo que, obviamente, Necesito una forma menos manual de hacer esto. Cualquier ayuda es muy apreciada, no soy más que un biólogo humilde y mi conjunto de habilidades en esta área es bastante limitado.
¿Desea solo pares en el mismo orden que su marco de datos? Es decir, ¿por qué no es "fa" o "ka" en su primera fila? –
Gracias, el orden no es importante en términos de identidad, es decir, "fa" = "af", pero sí, los pares deben estar en el mismo orden que el marco de datos, como en el ejemplo –