【问题标题】:Iterating a 2D matrix in chunks using R使用 R 以块的形式迭代 2D 矩阵
【发布时间】:2016-05-12 06:28:54
【问题描述】:

我想迭代以下矩阵并打印 2 个单元格值的集合。有没有办法在没有 for 循环的情况下做到这一点?

输入:

      [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    4    7   10   13   16
[2,]    2    5    8   11   14   17
[3,]    3    6    9   12   15   18

预期输出:

     [,1] [,2]
 [1,]   1   4
 [2,]   7  10
 [3,]  13  16
 [4,]   2   5
 [5,]   8  11
 [6,]  14  17
 [7,]   3   6
 [8,]   9  12
 [9,]  15  18

这是我的代码:

mat<-matrix(data=seq(1:18), nrow=3,ncol=6)
r <- rep(seq(1,3),each=2)
c1 <- seq(1,6,2)
c2 <- seq(2,6,2)

m <- mat[r,c(c1:c2)] # This does not work, it only output first two cells

【问题讨论】:

    标签: r matrix iteration


    【解决方案1】:

    我们可以得到矩阵的转置,然后通过指定ncol 转换回matrix

    matrix(t(mat), ncol=2, byrow=TRUE)
    #       [,1] [,2]
    # [1,]    1    4
    # [2,]    7   10
    # [3,]   13   16
    # [4,]    2    5
    # [5,]    8   11
    # [6,]   14   17
    # [7,]    3    6
    # [8,]    9   12
    # [9,]   15   18
    

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      相关资源
      最近更新 更多