【问题标题】:R - return position of element in matrix?R - 返回矩阵中元素的位置?
【发布时间】:2011-09-25 05:08:11
【问题描述】:

给定一个矩阵:

      [,1] [,2]
[1,]    0  0.0
[2,]   -1  0.8

在 R 中迭代矩阵并将所有非零条目的位置作为索引返回的最快方法是什么?

【问题讨论】:

  • 您的问题应该是“哪种方式最快?”然后它也会自己回答;)
  • 两天来我一直在为这个“这是最快的方式”的笑话而轻笑。我已经把它写成了一篇我非常喜欢的博文。

标签: r matrix indexing


【解决方案1】:
m <- matrix(c(0, 1, 1, 0), nrow = 2)
which(m != 0)

或许

which(m != 0, TRUE)

【讨论】:

    【解决方案2】:

    这是一种方法

    mat = matrix(rnorm(9), 3, 3)
    which(mat !=0, arr.ind = T)
    

    【讨论】:

    • @Cotton:Ramnath 的回答添加了非常有用的信息,即有一个附加参数可以产生面向矩阵的输出。所以我不认为他同意这么多,而是在推断 OP 想要什么方面做得更好。
    • @DWin Err,这不是 @Ritchie 的 R 代码中的 TRUE 在“或者可能”之后的操作吗?教学环境中的不良形式不命名参数,但两个答案是相同的。
    • @DWin:没关系,不用解释了。你显然比我更爱拉姆纳特。我不会整个下午都坐在办公室的角落里,一边哭一边画高票的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多