¿Cómo obtener todas las combinaciones de las columnas de un marco de datos tomadas por 2?
Supongamos que tengo este marco de datos:
matrix(c(2,4,3,1,5,7,1,2,3,5,8,2,4,5,1,1,3,6,1,3,4,5,6,1),nrow=6,ncol=4,byrow = TRUE)->X
as.data.frame(X)->X.df
V1 V2 V3 V4
1 2 4 3 1
2 5 7 1 2
3 3 5 8 2
4 4 5 1 1
5 3 6 1 3
6 4 5 6 1
entonces me gustaría obtener una lista de un conjunto de marcos de datos que contengan todas las combinaciones de columnas tomadas por 2, sin repetición, y evitando cualquier columna consigo misma. Eso significa, una lista de marcos de datos con los siguientes encabezados:
V1,V2
V1,V3
V1,V4
V2,V3
V2,V4
V3,V4
¿Alguna idea de cómo hacer esto?