Como obter todas as combinações das colunas de um quadro de dados tomadas por 2?

Suponha que eu tenha esse quadro de dados:

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

então eu gostaria de obter uma lista de um conjunto de quadros de dados contendo todas as combinações de colunas tomadas por 2, sem repetição, e evitando qualquer coluna consigo mesmo. Isso significa uma lista de dataframes com os seguintes cabeçalhos:

V1,V2
V1,V3
V1,V4
V2,V3
V2,V4
V3,V4

Alguma ideia de como fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion