【数据处理】R语言--data.table -dcast and melt(数据拆分and合并)

本文介绍了R语言中data.table包的dcast和melt函数,用于数据的宽格式到长格式转换。dcast用于数据重塑,melt则负责将数据融合为长格式,便于数据操作。文章通过实例展示了这两个函数在数据处理过程中的应用,并对比了reshape2和tidyr包中的类似功能。
摘要由CSDN通过智能技术生成

R–data.table -dcast and melt(数据拆分and合并)

写在前面:数据整形的过程确实和揉面团有些类似,先将数据通过melt()函数将数据揉开,然后再通过dcast()函数将数据重塑成想要的形状


reshape2包:
melt-把宽格式数据转化成长格式。
cast-把长格式数据转化成宽格式。(dcast-输出时返回一个数据框。acast-输出时返回一个向量/矩阵/数组。)
注:melt是数据融合的意思,它做的工作其实就是把数据由“宽”转“长”。
cast 函数的作用除了还原数据外,还可以对数据进行整合。
dcast 输出数据框。公式的左边每个变量都会作为结果中的一列,而右边的变量被当成因子类型,每个水平都会在结果中产生一列。


tidyr包:
gather-把宽度较大的数据转换成一个更长的形式,它类比于从reshape2包中融合函数的功能
spread-把长的数据转换成一个更宽的形式,它类比于从reshape2包中铸造函数的功能。
data.table包:
data.table的函数melt 和dcast 是增强包reshape2里同名函数的扩展

> library(data.table)
> 
> ID <- c(NA,1,2,2)
> 
> Time <- c(1,2,NA,1)
> 
> X1 <- c(5,3,NA,2)
> 
> X2 <- c(NA,5,1,4)
> 
> mydata <- data.table(ID,Time,X1,X2) 
> 
> mydata
   ID Time X1 X2
1: NA    1  5 NA
2:  1    2  3  5
3:  2   NA NA  1
4:  2    1  2  4

melt以使每一行都是一个唯一的标识符-变量组合
将第一列作为id列,其他列全部融合就可以了

> md <- melt(mydata, id=c("ID","Time")) #or md <- melt(mydata, id=1:2)
> md
   ID Time variable value
1: NA    
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值