【问题标题】:Extract rows from a matrix that meet a condition从矩阵中提取满足条件的行
【发布时间】:2020-02-11 22:43:22
【问题描述】:

我想从矩阵中提取行,其中 Mat1 的第 3 列和 subset.vector 之间存在重叠。

问题设置:

mat1= data.frame(matrix(nrow=10, ncol =5))
mat1[,2:5] = rnorm(40,0,1)
mat1[,1] = c(1,3,4)
mat1[,3] = c(500,120,7,9,10,11,14,53,12,13)
mat1

subset.vector <- c(500,120, 11, 13, 15)

输出:

mat2 = mat1[c(1,2,6,10),]

我希望能够对具有 1000 行的矩阵执行此操作,而无需指定要单独提取的行。我特意设置了subset.vector 来包含一个不在Mat1 中的元素。我还确保它的尺寸更小。

【问题讨论】:

    标签: r matrix subset


    【解决方案1】:

    您可以使用%in% 查看subset.vectormat1 的第3 列匹配的位置,例如:

    identical(mat2, mat1[mat1[,3] %in% subset.vector,])
    #[1] TRUE
    

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-30
      • 1970-01-01
      • 2018-03-02
      • 2020-01-14
      相关资源
      最近更新 更多