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

如何在有序R数据框中获取含指定文本的行及其下一行?

在R中提取特定文本行及紧随的下一行

当然可以实现,下面给你两种常用的解决方案,直接用示例数据演示:

首先构造你提供的示例数据框:

df <- data.frame(A = c("TEXT", "ABC", "CCC", "TEXT", "AAA", "GGG"))

方法一:基础R实现

不需要额外安装包,用原生代码就能搞定:

  1. 先定位所有包含"TEXT"的行索引
match_rows <- which(df$A == "TEXT")
  1. 合并目标行索引和它们的下一行索引,同时过滤掉超出数据框范围的索引(避免最后一行是目标文本时出错)
keep_rows <- unique(c(match_rows, match_rows + 1))
keep_rows <- keep_rows[keep_rows <= nrow(df)]
  1. 提取指定行
result <- df[keep_rows, ]

方法二:dplyr(tidyverse)实现

如果你习惯用tidyverse系列工具,这种写法更简洁:

library(dplyr)

result <- df %>%
  # 标记需要保留的行:当前行是TEXT,或者前一行是TEXT
  mutate(keep_flag = A == "TEXT" | lag(A) == "TEXT") %>%
  # 过滤出标记为保留的行
  filter(keep_flag) %>%
  # 移除辅助列
  select(-keep_flag)

两种方法最终得到的结果都是:

A
1 TEXT
2  ABC
4 TEXT
5  AAA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:10:23