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

如何在R中将表格数据转换为指定结构的结构化文本?

R语言实现方案

基础数据准备

先把示例表格转换成R的数据框:

df <- data.frame(
  Column_A = c("Project AAA", "Project AAA", "Project AAA", "Project BBB", "Project CCC", "Project CCC"),
  Column_B = c("Information 1", "Information 2", "Information 3", "Information 4", "Information 5", "Information 6")
)

方法1:Base R原生实现

通过分组拆分+文本拼接完成需求,不需要额外包:

# 按父项分组
grouped_data <- split(df$Column_B, df$Column_A)

# 生成每个项目的层级文本块
text_blocks <- lapply(names(grouped_data), function(project) {
  sub_items <- paste0("-", grouped_data[[project]], collapse = "\n")
  paste(project, sub_items, sep = "\n")
})

# 合并所有块,用空行分隔
final_text <- paste(unlist(text_blocks), collapse = "\n\n")

# 直接输出结果
cat(final_text)

# 导出为TXT文件
writeLines(final_text, "project_info.txt")

方法2:Tidyverse工具链简化

如果常用dplyr和stringr,代码更简洁:

library(dplyr)
library(stringr)

final_text <- df %>%
  group_by(Column_A) %>%
  summarise(sub_content = str_c("-", Column_B, collapse = "\n"), .groups = "drop") %>%
  mutate(full_block = str_c(Column_A, sub_content, sep = "\n")) %>%
  pull(full_block) %>%
  str_c(collapse = "\n\n")

# 输出或导出
cat(final_text)
writeLines(final_text, "project_info.txt")

非R工具实现方案

1. Excel手动处理

  • 第一步:复制Column A列到新列,删除重复值得到唯一父项列表
  • 第二步:用数组公式提取对应子项(Excel 365直接回车,旧版本按Ctrl+Shift+Enter):
    =TEXTJOIN(CHAR(10), TRUE, IF($A$2:$A$7=D2, "-"&$B$2:$B$7, ""))
    
  • 第三步:合并父项和子项:=D2&CHAR(10)&E2,最后把所有结果复制到记事本即可。

2. Python实现(Pandas)

逻辑和R一致,适合熟悉Python的用户:

import pandas as pd

df = pd.DataFrame({
    "Column_A": ["Project AAA", "Project AAA", "Project AAA", "Project BBB", "Project CCC", "Project CCC"],
    "Column_B": ["Information 1", "Information 2", "Information 3", "Information 4", "Information 5", "Information 6"]
})

text_blocks = []
for project, group in df.groupby("Column_A"):
    sub_items = "\n".join(f"-{item}" for item in group["Column_B"])
    text_blocks.append(f"{project}\n{sub_items}")

final_text = "\n\n".join(text_blocks)

# 输出结果
print(final_text)
# 保存为TXT
with open("project_info.txt", "w", encoding="utf-8") as f:
    f.write(final_text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:01:55