假设您设置了这样的矩阵:
text <- c(35, 1, 23, 17, 29, 3, 3, 31, 21, 15, 18, 22, 48, 0, 10, 42)
mtr <- matrix(text, nrow = 4, ncol = 4)
View(mtr)
35 29 21 48
1 3 15 0
23 3 18 10
17 31 22 42
我怎样才能更改矩阵,以便每隔一行向上移动一个插入的单元格,即:
35 1 29 3 21 15 48 0
23 17 3 31 18 22 10 42
所以,而不是:
A1 B1 C1 D1
A2 B2 C2 D2
A3 B3 C3 D3
A4 B4 C4 D4
它是:
A1 A2 B1 B2 C1 C2 D1 D2
A3 A4 B3 B4 C3 C4 D3 D4
干杯
答案 0 :(得分:1)
我们可以split
和rbind
do.call(rbind, split(mtr, as.numeric(gl(nrow(mtr), 2, nrow(mtr)))))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#1 35 1 29 3 21 15 48 0
#2 23 17 3 31 18 22 10 42
答案 1 :(得分:1)
可选地
m <- cbind(mtr[c(TRUE,FALSE),], mtr[c(FALSE, TRUE),])
m[, c(matrix(seq(ncol(m)), nrow = 2, byrow = TRUE))]
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#[1,] 35 1 29 3 21 15 48 0
#[2,] 23 17 3 31 18 22 10 42