如果特定列值满足 R 中的某些条件,如何删除矩阵行?

要在特定列满足某个条件时删除矩阵行,我们可以使用带单方括号的子集并根据条件获取矩阵的子集。例如,如果我们有一个矩阵 M 并且想要在 M 的第一列不包含值 5 的情况下删除行,那么我们可以使用命令 M[M[,1]==5,]。

示例

考虑以下矩阵 -

M1<-matrix(rpois(80,2),ncol=4)

M1

输出结果
    [,1] [,2] [,3] [,4]

[1,]  1    1    5    4

[2,]  5    2    3    1

[3,]  2    4    4    2

[4,]  1    0    0    2

[5,]  1    6    2    0

[6,]  2    1    2    1

[7,]  1    3    4    2

[8,]  3    1    1    0

[9,]  1    2    2    2

[10,] 0    0    0    1

[11,] 2    1    2    3

[12,] 1    2    4    1

[13,] 1    3    1    1

[14,] 3    3    1    2

[15,] 2    1    2    1

[16,] 2    0    2    1

[17,] 5    2    2    3

[18,] 0    0    0    0

[19,] 2    2    6    1

[20,] 3    1    1    0

如果第一个值不包含 2,则删除 M1 的行 -

示例

M1[M1[,1]==2,]
输出结果
    [,1] [,2] [,3] [,4]

[1,]  2    4    4    2

[2,]  2    1    2    1

[3,]  2    1    2    3

[4,]  2    1    2    1

[5,]  2    0    2    1

[6,]  2    2    6    1

示例

M2<-matrix(rpois(80,1),ncol=4)

M2

输出结果
    [,1] [,2] [,3] [,4]

[1,]  0    3    2    2

[2,]  0    1    1    0

[3,]  0    0    0    3

[4,]  5    0    3    0

[5,]  0    1    0    1

[6,]  0    0    3    2

[7,]  1    0    0    1

[8,]  0    1    1    2

[9,]  1    1    2    1

[10,] 2    2    1    0

[11,] 1    0    2    0

[12,] 1    0    3    1

[13,] 1    1    0    0

[14,] 2    0    3    1

[15,] 1    0    1    1

[16,] 2    2    0    1

[17,] 1    0    0    2

[18,] 0    1    2    2

[19,] 1    1    5    0

[20,] 2    2    2    0

如果第一个值包含 0,则删除 M2 的行 -

示例

M2[M2[,1]!=0,]
输出结果
    [,1] [,2] [,3] [,4]

[1,]  5    0    3    0

[2,]  1    0    0    1

[3,]  1    1    2    1

[4,]  2    2    1    0

[5,]  1    0    2    0

[6,]  1    0    3    1

[7,]  1    1    0    0

[8,]  2    0    3    1

[9,]  1    0    1    1

[10,] 2    2    0    1

[11,] 1    0    0    2

[12,] 1    1    5    0

[13,] 2    2    2    0

以上是 如果特定列值满足 R 中的某些条件,如何删除矩阵行? 的全部内容, 来源链接: utcz.com/z/360972.html

回到顶部