R-根据多列的值范围过滤行

Env*_*oy1 0 r filter

我有 5 列包含数字数据,我想过滤与 5 列中至少 3 列中的数据范围匹配的行。

例如,我有以下数据框,我定义值范围为 5-10。我的第一行有 3 列,其值在 5 到 10 之间,所以我想保留该行。第二行只有 5 到 10 之间的 2 个值,所以我想删除它。

第1列 列2 第3栏 第4栏 第5栏
7 4 10 9 2
4 8 2 6 2

And*_*erg 6

首先测试列中的值是否大于或等于 5 且小于或等于 10,然后查找符合条件的包含 3 或更多的行。

dat[ rowSums( dat >= 5 & dat <= 10 ) >= 3, ]
  column1 column2 column3 column4 column5
1       7       4      10       9       2
Run Code Online (Sandbox Code Playgroud)

数据

dat <- structure(list(column1 = c(7L, 4L), column2 = c(4L, 8L), column3 = c(10L, 
2L), column4 = c(9L, 6L), column5 = c(2, 2)), class = "data.frame", row.names = c(NA, 
-2L))
Run Code Online (Sandbox Code Playgroud)