R-矩阵中的重复列

时间:2018-01-10 23:33:02

标签: r

我有一个矩阵

1   2
1   3

我想复制每一列三次,以创建一个这样的矩阵:

1   1   1   2   2   2
1   1   1   3   3   3

我不认为我可以使用rep。非常感谢任何帮助

3 个答案:

答案 0 :(得分:5)

你可以在这种情况下使用rep,而不是在矩阵本身。 这样做你想要的:

mat1 = cbind(c(1,1), c(2,3))
mat2 = mat1[, rep(1:2, each=3)]

答案 1 :(得分:1)

假设您的初始矩阵称为m1,则可以选择一个选项:

m2 <- matrix(data = apply(m1, 2, function(x) rep(x, 3)), ncol = ncol(m1)*3)

答案 2 :(得分:1)

您实际上可以在rep内使用一个matrix

m <- matrix(c(1, 1, 2, 2), nrow = 2)
matrix(rep(as.numeric(t(m)), each = 3), nrow = nrow(m), byrow = TRUE)

根据矩阵的大小,这可能比使用apply更快。