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

如何在data.table中汇总指定交易对手的quantity并保留其他数据?

解决方案(data.table 原生实现)

针对你的需求,用data.table原生语法处理最适配,避免转换数据结构的问题,具体步骤如下:

  • 步骤1:构建分组标识
    给需要合并的两个counterparty设置统一标识,其余保留原名称:

    dt.data[, grp := ifelse(counterparty %in% c("RWE (DE)", "RWE (GB)"), "RWE (Combined)", counterparty)]
    
  • 步骤2:分组求和
    按marketArea、delivMonth和分组标识聚合quantity:

    result_dt <- dt.data[, .(quantity = sum(quantity)), by = .(marketArea, delivMonth, grp)]
    
  • 步骤3:还原字段名(可选)
    将临时分组列改回原字段名counterparty:

    setnames(result_dt, "grp", "counterparty")
    

简化版一行代码

如果想省略临时列,直接在分组时指定合并规则:

result_dt <- dt.data[, 
  .(quantity = sum(quantity)), 
  by = .(
    marketArea, 
    delivMonth, 
    counterparty = ifelse(counterparty %in% c("RWE (DE)", "RWE (GB)"), "RWE (Combined)", counterparty)
  )
]

注意事项

  • 合并后的counterparty名称可根据需求修改(比如改成"RWE")
  • 原生data.table语法比dplyr组合更高效,尤其适合大数据集
  • 非目标counterparty的条目会自动保留原有分组逻辑,不会被修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:17:08