我有一个大型数据集,其值为CPE
,百分比为PERC
.在现实世界中,情况略有不同,但我将其降至最低限度.
| CPE| PERC|
|---:|---------:|
| 42| 0.1132664|
| 264| 0.9260718|
| 470| 0.3732287|
| 316| 0.7437126|
| 9| 0.5819554|
| 114| 0.2052649|
现在我想过滤.较小的CPE
需要较高的PERC
才能聚焦.
我当然可以这样做:
df[(CPE > 20 & PERC > 0.95) |
(CPE > 50 & PERC > 0.9) |
(CPE > 100 & PERC > 0.85) |
(CPE > 250 & PERC > 0.8)]
但由于现实世界中可能会有更多的问题,而且这些问题可能会不时发生变化,所以我正在寻找一种更简单、更动态的解决方案
list(c(20, 0.95), c(50, 0.9), c(100,0.85), c(250,0.8))
有没有聪明的方法来处理这个问题?即使我更喜欢data.table
,dplyr
也很好.这还没有一个列表,我对任何类似的方法都持开放态度.
MWE
library(data.table)
set.seed(33)
df = data.table(CPE=sample(1:500, 100),
PERC=runif(min = 0.1, max = 1, n=100))