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

如何用R的dplyr包删除D30排序后首尾利润低于-50的行

实现方法(基于dplyr包)

你可以直接复用以下代码,按需调整参数即可实现需求。


完整实现代码

# 加载dplyr包
library(dplyr)

# 自定义参数(可根据实际需求调整)
n_top <- 1 # 要检查的排序后顶部行数,示例场景设为1
n_bottom <- 3 # 要检查的排序后底部行数,示例场景设为3
profit_threshold <- -50 # Profit列过滤阈值

# 执行数据处理
df_result <- df %>% # 替换df为你自己的数据集变量名
  arrange(D30) %>% # 按D30列升序排序
  mutate(total_rows = n()) %>% # 新增辅助列记录排序后总行数
  filter(
    # 排除顶部n行中Profit小于阈值的行
    !(row_number() <= n_top & Profit < profit_threshold),
    # 排除底部n行中Profit小于阈值的行
    !(row_number() > (total_rows - n_bottom) & Profit < profit_threshold)
  ) %>%
  select(-total_rows) # 删除辅助计算列

参数说明

  • n_top:需要检查的排序后头部行数,仅在这个范围内判断Profit是否满足删除条件
  • n_bottom:需要检查的排序后尾部行数,仅在这个范围内判断Profit是否满足删除条件
  • profit_threshold:Profit列的删除阈值,需求中对应为-50

注意事项

  • 如果列名包含空格、特殊字符(比如MRO 15x5),在dplyr操作时需要用反引号包裹列名,例如 `MRO 15x5`
  • 如果你需要删除所有头部/尾部满足条件的行,而非限定在固定n行范围内,可去掉row_number()的行数限制,调整过滤逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:36:04