删除具有 N 个变量中的任何一个的所有行

Delete All Rows With Any of N Variables

Delete rows where any column contains number

查找任何列中包含一个(或多个)值的行

扩展上面 post 的问题。

假设我有一个名为 m5 的数据集:

set.seed(1234)
m3 <- matrix(12:1,nrow=6,ncol=4)
m4<-as.data.frame(m3)
m5 <- m4[sample(nrow(m4)),]

如何 select 只显示任何列包含值 12、9 或 7 的行。

最终输出应该是第 1、2 和 6 行。

如果建议的答案也适用于字符串,也会有所帮助。

可以试试:

m5[apply(m5, 1, function(x) any(x %in% c(12, 9, 7))), ]

给予:

  V1 V2 V3 V4
4  9  3  9  3
1 12  6 12  6
6  7  1  7  1

也有 dplyr 的可能性,但这可能有点矫枉过正:

dplyr::filter_all(m5, any_vars(. %in% c(12, 9, 7)))