小编典典

选择满足条件的矩阵行

all

在带有矩阵的 R 中:

     one two three four
 [1,]   1   6    11   16
 [2,]   2   7    12   17
 [3,]   3   8    11   18
 [4,]   4   9    11   19
 [5,]   5  10    15   20

我想提取其行的第三列 = 11 的子矩阵。即:

      one two three four
 [1,]   1   6    11   16
 [3,]   3   8    11   18
 [4,]   4   9    11   19

我想在不循环的情况下做到这一点。我是 R 新手,所以这可能很明显,但文档通常有点简洁。


阅读 164

收藏
2022-08-21

共1个答案

小编典典

如果使用 as.data.frame() 将矩阵转换为数据框,这会更容易。在这种情况下,先前的答案(使用子集或 m$three)将起作用,否则将不起作用。

要对矩阵 执行操作,可以按名称定义列:

m[m[, "three"] == 11,]

或按编号:

m[m[,3] == 11,]

请注意,如果只有一行匹配,则结果是整数向量,而不是矩阵。

2022-08-21