【发布时间】:2017-03-31 12:55:50
【问题描述】:
我必须数据框,列数相同但行数不同。我想将一个数据框的列绑定到另一个数据框的列,但绑定到所有其他列,即一个数据框的第一行与第二个数据框的所有其他行,依此类推。
我尝试使用 for 循环,但当然,对于大量行,它需要很长时间。举个例子:
df1 <- data.frame(replicate(5,sample(0:1,5,rep=TRUE)))
df2 <- data.frame(replicate(5,sample(0:1,5,rep=TRUE)))
b1 <- data.frame()
for (i in 1:nrow(df1)) {
for (k in 1:nrow(df2)) {
b1 <- rbind(b1, cbind(df1[i,], df2[k,]))
}
}
在本例中,b1 是一个 25 行 10 列的数据框。
我尝试使用 do.call,但我得到了一个一对一的映射,即在这种情况下是一个 5 行的数据框(第一列到第一列,第二列到第二列,依此类推)。
关于如何改进这一点的任何想法?
谢谢!
【问题讨论】: