我有这个data.frame
V1 V2 V3 V4 V5
<dbl> <dbl> <dbl> <dbl> <dbl>
0.000 0.000 0.000 0.000 1.000
0.651 0.000 0.000 0.000 0.349
0.000 0.000 1.000 0.000 0.000
0.703 0.000 0.297 0.000 0.000
0.018 0.982 0.000 0.000 0.000
0.683 0.000 0.000 0.000 0.317
0.000 0.000 0.000 0.000 1.000
0.000 0.000 0.000 0.000 1.000
0.000 0.001 0.000 0.000 0.999
这里的列是给定类中成员的概率,我需要过滤具有给定范围(比如.30 > x > .70
)之间的任何值的行。
理想的结果是
V1 V2 V3 V4 V5
<dbl> <dbl> <dbl> <dbl> <dbl>
0.651 0.000 0.000 0.000 0.349
0.683 0.000 0.000 0.000 0.317
我尝试了data %>% filter(if_any(starts_with("V"), ~ . > 0.3) & if_any(starts_with("V"), ~ . < 0.7))
,但它返回了几乎所有的行。
1条答案
按热度按时间ajsxfq5m1#
您可以
rowwise
过滤所有列并检查条件,如下所示:创建于2023年2月1日,使用reprex v2.0.2