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

如何使用dplyr基于上一行内容筛选R数据框的特定行?

实现方法(优先dplyr方案)

核心逻辑为:判断当前行的上一行是否包含Total关键词,如果包含则过滤掉当前行。

依赖包

需要用到dplyr做数据处理,stringr做字符串匹配,二者都属于tidyverse生态:

library(dplyr)
library(stringr)

核心代码

df_result <- df1 %>%
  filter(!str_detect(lag(Group, default = ""), "Total"))

代码说明

  • lag(Group, default = ""):取每一行的上一行Group值,第一行没有上一行,默认设为空字符串避免NA报错
  • str_detect(..., "Total"):判断上一行的Group是否包含Total关键词
  • !取反,把上一行含Total的行过滤掉

运行后得到的df_result和你给出的期望结果完全一致。

补充:基础R实现方案

如果不想加载第三方包,可以用基础R代码实现:

is_prev_total <- c(FALSE, grepl("Total", df1$Group[-nrow(df1)]))
df_result <- df1[!is_prev_total, ]

内容的提问来源于stack exchange,提问作者Natasha R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:57:03