有条件地删除矩阵中的行

时间:2013-11-20 17:41:04

标签: r

我有一个包含3列的矩阵。 1.列在行中具有值1或0。我想删除矩阵中的所有行,其中1.列等于零(或保持包含1的行)。

感谢。

2 个答案:

答案 0 :(得分:2)

所以,说你有这个矩阵:

A= matrix(c(1, 2, 3, 0, 3, 5, 1, 3, 8),3,3, byrow=T)

以下命令将为每行提供一个TRUE / FALSE向量,具体取决于第一列是否为1:

A[,1]==1

然后,您可以只选择这样的行:

FILTERED = A[A[,1]==1,]

然后,您将在FILTERED

中找到您要求的内容

答案 1 :(得分:1)

试试这个:

#dummy matrix
x <- matrix(rep(c(1,0,1),4),ncol=3)

x
#       [,1] [,2] [,3]
# [1,]    1    0    1
# [2,]    0    1    1
# [3,]    1    1    0
# [4,]    1    0    1

#keep rows where 1st column equals to 1
x[x[,1] == 1,]
#       [,1] [,2] [,3]
# [1,]    1    0    1
# [3,]    1    1    0
# [4,]    1    0    1