按列复制,但使用矢量化在r中进行转置

时间:2015-12-27 04:06:46

标签: r vectorization

我有一个像这样的矩阵:

m1 <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3, byrow = TRUE)

我希望每列重复“m”次,但是转换成文件并水平连接结果。我的意思是,假设“m”是3,我想有这样的东西:

matrix(c(1,4,7,2,5,8,3,6,9,1,4,7,2,5,8,3,6,9,1,4,7,2,5,8,3,6,9), 
                     nrow = 3, byrow = TRUE)

有没有矢量化的方法来做到这一点?

我尝试使用rep来复制列然后进行转置,但我以多行结束

1 个答案:

答案 0 :(得分:2)

我们可以使用rep

matrix(rep(m1, each=nrow(m1)), nrow=3)

或者

`dim<-`(rep(m1, each=nrow(m1)), dim(m1)*c(1,3))

或者

t(replicate(nrow(m1), c(m1)))

数据

m1 <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3, byrow = TRUE)