You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RStudio中分组筛选最大值并列时优先选WPcondition为P的行的实现方法

实现方案(R tidyverse 版本)

你可以直接用dplyr的分组排序逻辑实现需求,排序规则完全匹配你给出的优先级:

第一步:加载依赖包

如果未安装tidyverse先运行安装命令,否则直接加载:

# 未安装的话先执行:install.packages("tidyverse")
library(tidyverse)

第二步:执行数据处理

假设你的数据集名为df,直接运行以下代码即可:

result <- df %>%
  # 先把realValue转成数值型,避免字符排序出错
  mutate(realValue = as.numeric(realValue),
         # 记录原始行号,同优先级时保留原始排序
         orig_row = row_number()) %>%
  # 按Condition、TargetWord分组
  group_by(Condition, TargetWord) %>%
  # 按规则排序:realValue降序 > P优先 > 原始顺序靠前优先
  arrange(desc(realValue), desc(WPcondition == "P"), orig_row) %>%
  # 取每组第一条符合规则的记录
  slice(1) %>%
  # 清理辅助列,恢复输出格式
  ungroup() %>%
  select(-orig_row) %>%
  arrange(Condition, TargetWord)

逻辑说明

代码的排序逻辑完全对齐你给出的规则:

  • 第一优先级:desc(realValue) 保证realValue最高的行排在最前
  • 第二优先级:desc(WPcondition == "P") 同realValue的情况下,P的行会排在Q前面
  • 第三优先级:orig_row 前两个条件都相同时,保留原始数据中出现更早的行

运行后输出的result就是你需要的结果。


内容的提问来源于stack exchange,提问作者Ajrhjnd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 17:54:03