R中矩阵的可能组合

时间:2016-10-24 23:12:31

标签: r combinations

我有一个数据框

df <- data.frame(x = c(1,2,3,4,5), y = c(11,12,13,14,15))

我想要的是这个

df
1  11
2  12
3  13
4  14
5  15
2  12
3  13
4  14
5  15
3  13
4  14
5  15
5  15

它基本上是数据帧的所有可能组合。我尝试过combn和expand.grid,但是它们给了我所有可能的组合,而不是一次两个可能的组合。我也试过循环它,但是子集总是需要折腾。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我们可以通过sapply次迭代对进行排序。然后用索引绑定矢量:

df <- data.frame(x = c(1,2,3,4,5), y = c(11,12,13,14,15))
s <- seq(length(df$x))
d2 <- unlist(sapply(s, seq, to=max(s)))
cbind.data.frame(x=df$x[d2], y=df$y[d2])
#    x  y
# 1  1 11
# 2  2 12
# 3  3 13
# 4  4 14
# 5  5 15
# 6  2 12
# 7  3 13
# 8  4 14
# 9  5 15
# 10 3 13
# 11 4 14
# 12 5 15
# 13 4 14
# 14 5 15
# 15 5 15