我想创建一个新的数据框,以便
DF1
A1 B1 C1
1 2 3
4 5 6
7 8 9
result_df
A1 B1 C1 A2 B2 C2
1 2 3 4 5 6
1 2 3 7 8 9
4 5 6 7 8 9
基本上,行的成对组合使得row [i]!= row [j] 我可以使用for循环来做到这一点。但我想知道有没有办法可以使用data.table或应用函数来加快速度。
答案 0 :(得分:1)
不会强制不同列的解决方案都是相同的类型:
DF <- as.data.frame(matrix(1:9,3,byrow=TRUE))
cmb <- combn(seq_len(nrow(DF)), 2)
cbind(DF[cmb[1,],], DF[cmb[2,],])
# V1 V2 V3 V1 V2 V3
#1 1 2 3 4 5 6
#1.1 1 2 3 7 8 9
#2 4 5 6 7 8 9