我想用奇数提取/分割矩阵。具体来说,我希望前15行然后分开接下来的14行。即。
submatrix_15 <- <rows 1-14, rows 30-44, etc>
submatrix_14 <- <rows 15-29, rows 45-59, etc>
答案 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匹配的TRUE
和FALSE
值。
答案 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等)