我有 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 |
首先测试列中的值是否大于或等于 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)