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

在R中如何以单列唯一值为新列标题重组data.table

长表转宽表实现方案(适配data.table结构)

你需要的是典型的长表转宽表操作,直接使用data.table自带的dcast函数即可实现,逻辑通用不需要硬编码name列的具体取值,可适配name取值不同的所有场景。

操作步骤

  1. 加载data.table包(已加载可跳过)
library(data.table)
  1. 执行转换代码,将示例中的dt替换为你自己的data.table变量名即可
wide_dt <- dcast(
  data = dt,
  formula = file + date ~ name,
  value.var = "rt",
  # 处理同一file+date+name组合下存在多条rt的场景
  fun.aggregate = list
)

参数说明

  • formula = file + date ~ name:等号左侧为保留的行维度字段,确保每个file对应唯一一行,date跟随file同步保留;等号右侧为要展开为新列的字段,自动取所有唯一值作为新列名
  • value.var = "rt":指定新列的填充值来源为原rt列
  • fun.aggregate = list:同一分组下有多条rt时,将所有值以列表形式存入对应单元格;如果需要合并多条记录,可替换为对应的聚合函数,例如取均值mean、求和sum,需要忽略空值可追加na.rm = TRUE参数

转换完成后输出的列顺序默认为file、date、所有name唯一值列,完全符合输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:06:09