【问题标题】:Get value of a matrix with row-index and column-index [duplicate]获取具有行索引和列索引的矩阵的值[重复]
【发布时间】:2017-12-01 11:59:52
【问题描述】:

我正在尝试使用这样的行索引和列索引向量获取矩阵的值。

M = matrix(rnorm(100),nrow=10,ncol=10)
set.seed(123)
row_index = sample(10) # 3  8  4  7  6  1 10  9  2  5
column_index = sample(10) # 10  5  6  9  1  7  8  4  3  2

有什么办法可以做类似的事情

M[row_index, column_index]

并获取

的值
M[3,10], M[8,5], ...

作为向量?

【问题讨论】:

    标签: r


    【解决方案1】:

    我们需要一个 cbind 来创建一个 2 列 matrix 其中第一列表示行索引和第二列索引

    M[cbind(row_index, column_index)]
    

    【讨论】:

      【解决方案2】:

      我提出的解决方案并不是在 R 中做事的最佳方式,因为在大多数情况下 loops are slow 与矢量化操作相比。但是,对于这个问题,您可以简单地实现一个循环来索引矩阵。虽然可能完全没有理由不指定任何提供数据结构的对象(例如数据框或矩阵),但无论如何我们都可以使用循环构造来避免它。

      for (i in 1:length(row_index)) {
       print(M[row_index[i], column_index[i]])
        }
      

      【讨论】:

        猜你喜欢
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        相关资源
        最近更新 更多