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

如何在R中基于关键词条件提取数据集指定行及对应前一行

R实现提取匹配行及上一行的方案

适配dplyr语法的实现

你原有代码中使用的filter_all(any_vars())属于dplyr废弃的旧语法,推荐替换为if_any()写法,同时新增标记上一行的逻辑即可实现需求:

library(dplyr)

df.out <- df %>%
  # 标记所有包含"Aplicada"的行
  mutate(target_flag = if_any(everything(), ~ . %in% "Aplicada")) %>%
  # 筛选匹配行 + 匹配行的上一行
  filter(target_flag | lag(target_flag)) %>%
  # 移除辅助标记列
  select(-target_flag)

无依赖的基础R实现

如果不想加载第三方包,可以直接通过行索引定位:

# 定位包含"Aplicada"的所有行号
match_idx <- which(apply(df, 1, function(row) "Aplicada" %in% row))
# 合并匹配行号和上一行行号,去重排序后提取数据
df.out <- df[sort(unique(c(match_idx - 1, match_idx))), ]

两种方法输出的结果都和你给出的预期结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:57:02