给定矩阵的值,得到它的坐标

时间:2013-11-19 01:04:59

标签: r

我有矩阵,我想编写一个函数,得到矩阵的元素并返回矩阵内的数字坐标。有人可以提出如何实施它的想法吗?

> A
     [,1] [,2]
[1,]   10   20
[2,]   21   17
[3,]   13   25
[4,]   21   11
[5,]   31   24

例如

  

myfunction的(11)

> 11
> row 3, col 1

2 个答案:

答案 0 :(得分:12)

which()接受一个参数arr.ind=TRUE,它将返回应用它的逻辑矩阵中所有TRUE个元素的索引。

## An example matrix
set.seed(1)
m <- matrix(sample(1:100, 10), ncol=2)
m
#      [,1] [,2]
# [1,]   27   86
# [2,]   37   97
# [3,]   57   62
# [4,]   89   58
# [5,]   20    6

## An example application 
which(m==58, arr.ind=TRUE)
#      row col
# [1,]   4   2

答案 1 :(得分:0)

根据Josh的回答,很难给出这样的答案,但是在R中使用算术的一个例子是该形式的自定义函数:

getIndices <- function(flatMatch, nrow) {
  rows <- flatMatch %% nrow
  cols <- flatMatch %/% nrow + 1
  cbind(rows, cols)
}

这当然可以扩展到考虑多维数组,它们的重新形成的对应物,甚至还没有形成的数组。在这些情况下,自定义代码可以提供一些温和的优势,但是R在存储和表示数组方面非常有效,所以这是一个充满活力的例子。