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

R语言中按Font列条件遍历data frame拼接字段的实现咨询

首先修正你示例数据的小笔误:原df中ID列长度仅为6,和Name、Font列的10个元素不匹配,下述代码已调整为ID = 1:10。

实现思路

  • 生成分组标识:每遇到一次Font A紧跟在Font B之后(或首行是Font A),组号+1,确保每个分组刚好对应一组「姓名+职位」的组合
  • 按分组和Font类型聚合,拼接同组同Font下的所有Name内容
  • 把同组的姓名、职位从行格式转为列格式,得到最终结果

可运行代码

library(dplyr)

# 构造测试数据
df <- data.frame(
  ID = 1:10,
  Name = c("Chris", "J", "Kemp", "President,", "CEO & ", "Director", "Ashton", "K", "Christian", "Analyst"), 
  Font = c("Font A", "Font A", "Font A", "Font B", "Font B", "Font B", "Font A", "Font A", "Font A", "Font B")
)

final_df <- df %>%
  # 生成分组标签
  mutate(group = cumsum(Font == "Font A" & lag(Font, default = "Font B") == "Font B")) %>%
  # 按组和Font拼接内容
  group_by(group, Font) %>%
  summarise(content = paste(Name, collapse = " "), .groups = "drop") %>%
  # 宽表转换,拆分姓名和职位
  tidyr::pivot_wider(names_from = Font, values_from = content) %>%
  # 输出指定列
  select(Name = `Font A`, Designation = `Font B`)

# 输出结果
print(final_df)

该方案采用向量化运算,无需逐行遍历,适配大型数据集的处理需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:27:03