【问题标题】:R: Extract two elements from matrix [duplicate]R:从矩阵中提取两个元素[重复]
【发布时间】:2020-12-24 10:46:08
【问题描述】:

我有以下矩阵mat

> mat
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

我想提取 [2,1] 和 [3,2] 的元素。换句话说,我希望输出为 4 和 8。

> mat[[2,1], [3,2]] 

没有工作(错误)和

> mat[c(2,3), c(1,2)]
     [,1] [,2]
[1,]    4    5
[2,]    7    8

也不对。

一行代码提取4和8的正确方法是什么?

我知道我可以单独提取它们,然后将它们放入同一个向量中,但这不是我想要的方式......我想知道是否有更清洁的方法。

【问题讨论】:

    标签: r matrix indexing


    【解决方案1】:

    您可以通过cbind/rbind 的位置创建一个矩阵,该矩阵可用于从mat 获取值。

    mat <- matrix(1:9, nrow = 3, byrow = TRUE)
    mat[cbind(c(2, 3), c(1, 2))]
    #With rbind
    #mat[rbind(c(2, 1), c(3, 2))]
    #[1] 4 8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      相关资源
      最近更新 更多