【问题标题】:Index value for matrix in R?R中矩阵的索引值?
【发布时间】:2010-12-22 05:08:16
【问题描述】:

是否有获取矩阵索引(行号和列号)的函数?

假设我有一个简单的矩阵:

a <- matrix(1:50, nrow=5)

例如,有没有一种简单的方法可以为数字“23”取回类似 c(3, 5) 的内容?在这种情况下,说 which(a==23) 只会返回 23。

这似乎可行,但我确信有更好的方法:

matrix.index <- function(a, value) {
  idx <- which(data.frame(a)==value)
  col.num <- ceiling(idx/nrow(a))
  row.num <- idx - (col.num-1) * nrow(a)
  return(c(row.num, col.num))
}
> matrix.index(a, 23)
[1] 3 5
> matrix.index(a, 50)
[1]  5 10

【问题讨论】:

    标签: r matrix filtering


    【解决方案1】:

    发帖后刚看了which()的帮助,找到了答案:arr.ind参数。

    which(a==23, arr.ind=TRUE)
         row col
    [1,]   3   5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 2018-01-03
      相关资源
      最近更新 更多