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

如何用R的data.table将Type转为列、Group转为行名并填充Value值?

使用data.table实现长表转宽表

当然可以用data.table的内置函数完成这个需求,核心用dcast()函数实现长格式到宽格式的转换,具体步骤如下:

  1. 构造原数据(已有数据可跳过):
library(data.table)
dt <- data.table(
  Group = c(rep(1, 5), rep(2, 5), rep(3, 5)),
  Type = c("A","B","C","D","E"),
  Value = 1:15
)
  1. 用dcast()转成宽格式:
result <- dcast(dt, Group ~ Type, value.var = "Value")

这里Group ~ Type表示以Group的取值作为行分组依据,Type的取值作为新列名,value.var = "Value"指定用Value列的数值填充单元格。此时result的结构为:

Group  A  B  C  D  E
1:     1  1  2  3  4  5
2:     2  6  7  8  9 10
3:     3 11 12 13 14 15
  1. 设置行名为Group的取值并移除原Group列:
rownames(result) <- result$Group
result[, Group := NULL]

最终得到目标格式:

A  B  C  D  E
1:  1  2  3  4  5
2:  6  7  8  9 10
3: 11 12 13 14 15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:15:39