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

如何使用R语言data.table将宽表重塑为长表?

解决R语言中data.table宽表转长表的问题

嘿,这个需求太常见啦!既然你已经在用data.table,那直接用它自带的melt()函数就能轻松把宽表转成你想要的长表,而且处理大表格的效率比Excel高得多,完全不用担心卡顿问题。

具体实现步骤

首先,先确认你的data.table包已经加载,然后直接运行以下代码:

# 加载data.table包(如果未加载的话)
library(data.table)

# 你的原始宽表数据
dt <- data.table(name = c("Jack", "Gill", "Tom", "Jerry"), 
                 Math = c(55,65,75,85), 
                 History = c(50,60,70,80), 
                 Geography = c(55,66,77,88))

# 宽表转长表核心代码
long_dt <- melt(dt, 
                id.vars = "name",          # 指定不需要被重塑的标识列
                variable.name = "Subject", # 新生成的科目列名称
                value.name = "Score")      # 新生成的分数列名称

输出结果

运行后你会得到如下的长表结构,完全符合你的需求:

name    Subject Score
 1: Jack      Math    55
 2: Gill      Math    65
 3:  Tom      Math    75
 4: Jerry     Math    85
 5: Jack    History    50
 6: Gill    History    60
 7:  Tom    History    70
 8: Jerry   History    80
 9: Jack  Geography    55
10: Gill  Geography    66
11:  Tom  Geography    77
12: Jerry Geography    88

小提示

如果是第一次使用data.table,记得先安装包:

install.packages("data.table")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:36:34