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

基于heading 1为officer提取的Word文本行分配段落组编号

给Word提取文本按标题分组分配编号

问题场景

用officer包提取Word文档文本后得到如下数据框:

df <- data.frame(style_name = c("heading 1", "para 1", "para 1", "para 1", "heading 1", "para 1", "para 1", "heading 1", "para 1", "heading 1", "para 1"), 
                 text = c("Introduction", "Some", "Intro", "Wording", "Background", "Some more", "wording to suit", "Another heading", "and paragraph wording", "Final Heading", "Closing words go here"))

数据框内容:

style_name                  text
1   heading 1          Introduction
2      para 1                  Some
3      para 1                 Intro
4      para 1               Wording
5   heading 1            Background
6      para 1             Some more
7      para 1       wording to suit
8   heading 1       Another heading
9      para 1 and paragraph wording
10  heading 1         Final Heading
11     para 1 Closing words go here

需要给每个以heading 1开头到下一个heading 1前的行分配统一的section_group编号,最终得到包含分组编号的数据框。

解决方案

核心逻辑是识别所有style_name为heading 1的行,对这些行的位置做累加计数,后续段落行自动继承当前计数,直到下一个标题行出现时计数递增。提供两种实现方式:

方法1:基础R实现

# 生成分组编号
df$section_group <- cumsum(df$style_name == "heading 1")

方法2:dplyr包实现(适合管道式操作)

library(dplyr)

df <- df %>%
  mutate(section_group = cumsum(style_name == "heading 1"))

效果验证

运行后得到目标结果:

style_name                  text section_group
1   heading 1          Introduction             1
2      para 1                  Some             1
3      para 1                 Intro             1
4      para 1               Wording             1
5   heading 1            Background             2
6      para 1             Some more             2
7      para 1       wording to suit             2
8   heading 1       Another heading             3
9      para 1 and paragraph wording             3
10  heading 1         Final Heading             4
11     para 1 Closing words go here             4

逻辑说明

cumsum(df$style_name == "heading 1")会将每个标题行标记为1,非标题行标记为0,累加求和后:每遇到一个标题行,计数就加1,后续的段落行会持续使用当前计数,直到下一个标题行出现时计数再次递增,完美实现分组编号需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:42:17