R中数据帧行的组合

时间:2017-08-10 22:28:21

标签: r data.table combinations

我想创建一个新的数据框,以便

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或应用函数来加快速度。

1 个答案:

答案 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