如何使用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
相关产品推荐
相关产品推荐

