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