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

在表格中拼接字符串与计算变量,确定报告摘要文本生成最优流程

为每个Service生成定制化摘要文本的最优R流程

我来给你梳理下用tidyverse工具链实现需求的最优流程,不管是分组计算还是字符串与变量的拼接,都能高效完成,代码还特别好读。

步骤1:准备工作(加载包+构造数据)

首先确保你加载了tidyverse包,它包含了我们需要的tribble、dplyr(分组计算)和stringr(字符串拼接,尤其是str_glue函数,比传统paste更直观):

library(tidyverse)

# 构造你提供的数据对象x
x <- tribble(
  ~year, ~service, ~account, ~amount,
  "2001", "Army", "operations", 5000000,
  "2001", "Navy", "operations", 1500000,
  "2002", "Army", "operations", 6000000,
  "2002", "Navy", "operations", 1700000,
  "2001", "Army", "repair", 500000,
  "2001", "Navy", "repair", 300000,
  "2002", "Army", "repair", 400000,
  "2002", "Navy", "repair", 600000
)

步骤2:分组计算+生成摘要文本

这一步是核心:我们按service分组,计算每个组的年份范围(最小/最大年份),然后用str_glue把字符串模板和计算出的变量无缝拼接。如果需要,还可以加入金额相关的统计(比如总支出)让摘要更有价值:

summary_report <- x %>%
  group_by(service) %>%
  summarise(
    year_min = min(year),
    year_max = max(year),
    total_amount = sum(amount) %>% scales::dollar_format()(), # 格式化金额为美元格式
    # 生成定制化摘要文本
    summary_text = str_glue(
      "Between {year_min} and {year_max}, the {service} spent {total_amount} across operations and repair accounts."
    )
  ) %>%
  ungroup() # 取消分组,避免后续操作的潜在问题

步骤3:查看结果

运行上面的代码后,summary_report就是我们需要的结果,其中summary_text列就是每个service对应的摘要:

print(summary_report)

输出会是这样的(格式化后的金额更清晰):

# A tibble: 2 × 5
  service year_min year_max total_amount summary_text                                                                
  <chr>   <chr>    <chr>    <chr>        <glue>                                                                      
1 Army    2001     2002     $11,900,000  Between 2001 and 2002, the Army spent $11,900,000 across operations and rep…
2 Navy    2001     2002     $4,100,000   Between 2001 and 2002, the Navy spent $4,100,000 across operations and repa…

为什么这是最优流程?

  • tidyverse生态兼容:因为你的数据是用tribble构造的(属于tidyverse),用dplyr分组计算+str_glue拼接完全契合,代码风格统一,可读性极强。
  • 可扩展性强:如果后续需要加入更多统计维度(比如每个account的支出占比),直接在summarise里加计算逻辑,然后扩展str_glue的模板即可。
  • 字符串拼接更直观:str_glue允许你直接在字符串里嵌入变量名,不需要反复用paste或paste0拼接,减少出错概率,也更符合自然语言的表达习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:38:10