使用奇数行将矩阵拆分为两行

时间:2014-01-17 22:57:56

标签: r

我想用奇数提取/分割矩阵。具体来说,我希望前15行然后分开接下来的14行。即。

submatrix_15 <- <rows 1-14, rows 30-44, etc>
submatrix_14 <- <rows 15-29, rows 45-59, etc>

2 个答案:

答案 0 :(得分:2)

这应该适合你:

x <- matrix(rep(1:100, each=10), nrow=100, ncol=10, byrow=TRUE)
x

submatrix_15 <- x[which(seq(nrow(x)) %/% 15 %% 2 == 0),]
submatrix_14 <- x[which(seq(nrow(x)) %/% 15 %% 2 == 1),]

submatrix_15
submatrix_14

%/%运算符返回除法的商,而%%返回余数。因此,第一个操作返回指定的行组,而第二个操作返回这些组是奇数(等于1)还是偶数(等于0)。最后,which函数返回与{1}或0匹配的TRUEFALSE值。

答案 1 :(得分:0)

像...一样的东西。

x <- matrix(1:200, ncol=2)
x <- as.data.frame(suppressWarnings(cbind(x, c(rep(1,14), rep(2,15)))))
split(x[,-3], list(x[,3])

...会给你一个包含两个组件的列表(1:1-14,30-44等; 2:15-29,45-59等)