使用布尔值从数据框中删除行

时间:2014-03-17 11:21:31

标签: r

我有以下数据框a

> a <- cbind(c(FALSE,FALSE,TRUE,TRUE),c(TRUE,FALSE,FALSE,TRUE))
> a
           [,1]     [,2]
  [1,]    FALSE    TRUE
  [2,]    FALSE    FALSE
  [3,]    TRUE     FALSE
  [4,]    TRUE     TRUE

我想删除第一列值和第二列值为false的所有行。请注意,我确实有一些其他的非布尔列。

2 个答案:

答案 0 :(得分:1)

因此,您希望保留每行至少包含一个TRUE列的行:

keep <- a[,1] | a[,2]
a <- a[keep, ]

答案 1 :(得分:1)

您可以使用rowSums。

 a[(rowSums(a[,1:2])!=0),]