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

如何使用dcast转换含不同类型多value.var的data.table

解决方法

你之前写法的核心问题是没有为每个id分组内添加行索引,dcast无法自动对齐不同id对应的数值行序,会出现冗余行或聚合错误。

可行代码如下:

library(data.table)

# 1. 为每个id分组内生成行索引,用来对齐不同id的数值位置
inDT[, rn := rowid(id)]

# 2. 先融合数据过滤掉NA值,再转宽表
outDT <- dcast(
  melt(inDT, id.vars = c("id", "rn"), na.rm = TRUE),
  rn ~ id,
  value.var = "value"
)[, rn := NULL] # 移除辅助行索引列

执行后得到的outDT和你预期的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:27:03