如何在R中获得多个向量的组合

时间:2018-02-27 22:52:31

标签: r

我有一个数据框x。我希望得到所有行的成对组合,例如(x[1,], x[2,)(x[1,], x[3,])(x[2,], x[3,])。在这里,我将每行作为一个整体。我尝试了像combn这样的函数,但它给了我所有行中所有元素的组合。

2 个答案:

答案 0 :(得分:1)

我认为combn你走在正确的轨道上:

x <- data.frame(a=sample(letters, 10), b=1:10, c=runif(10), stringsAsFactors=FALSE)
ans <- combn(nrow(x), 2, FUN=function(sub) x[sub,], simplify=FALSE)

现在ans是一个列表(在这种情况下是45个,一般为choose(nrow(x), 2))data.frames,每个都有两行。

答案 1 :(得分:0)

tidyr套餐中的crossing() function可能会对您有所帮助。 (该链接包含StackOverflow示例。)