r - 如何在 R 中通过分组操作应用多个条件过滤器?
问题描述
我有以下名为“数据”的数据框
我只想获取实际折扣值与折扣值比较并采用更高密封值的那些行。如果实际折扣高于型号RTD9的折扣,则应采用最高的折扣密封。
我的最终输出数据框应如下所示(上面的数据框中为黄色),
解决方案
我们可以findInterval
用来获取最近的区间
library(dplyr)
df %>%
group_by(Model) %>%
slice(if(any(Discount > ActualDiscount))
which.max(findInterval(Discount, first(ActualDiscount))) else
which.max(Discount - ActualDiscount))
# Model Level Discount ActualDiscount
# <fct> <int> <dbl> <dbl>
#1 BD56 1 21 20
#2 HT67 2 25 24
#3 KJ90 3 33 32
#4 RTD9 3 33.7 35.5
#5 YT61 5 33 32.5
推荐阅读
- spring - 春季批处理中不想要 JOB_EXECUTION_PARAMS
- python - 如何根据条件将数据框中的一列切成多个系列
- omnet++ - 使用 Venes_inet 从 aodvRouter 向 adhocHost 发送消息时出错
- vue.js - 如何在换页的同时不停顿地听音乐?
- python-3.x - 如何在每行之后插入每组的最后一行
- javascript - nativescript-vue 应用程序中的 Laravel 身份验证,有人做过吗?
- javascript - 将javascript注入对象函数
- lua - Roblox 商店未显示
- tableau-api - 基于 Tableau 上的不同列进行筛选
- sql - 以智能方式在 db 中进行数据离散化