R语言中的数据重塑

文章目录

介绍

tidyverse系列包中的函数操作都是针对简洁数据框进行的,对于不是简洁的数据,实现需要进行数据重塑。数据重塑主要包括长宽表的转换、拆分/合并列、方形化。长宽表转化最初使用的是reshape2包的melt()和cast()函数,后来又发展到早起tidyr包的gather()和spread()函数,现在tidyr 1.0之后又提供了更加易用的pivot_longer()和pivot_wider()函数。

reshape2::melt()的用法

melt()实现了将宽表转化为长表的功能。

复制代码
melt(data,id.vars=c(" "),measure.vars=c("  "),variable.name="variable",value.name="value")

其中:

  • id.vars相当于码是只转化后不变的列
  • meansure.vars表示在转化中需要重塑的列
  • variable.name表示将measure.vars转化为一列后变量列的名称
  • value.name表示重塑后变为一列的数值列的名称

实例

复制代码
> Df
#    key  a  b  c
# 1   A NA NA  1
# 2   B NA  2 NA
# 3   C  3 NA NA
# 4   D NA  4 NA
# 5   E NA NA  5
melt(Df,id.vars = 'key',measure.vars = c('a','b','c'),variable.name = 'vars',value.name = 'value' )
#     key vars value
# 1    A    a    NA
# 2    B    a    NA
# 3    C    a     3
# 4    D    a    NA
# 5    E    a    NA
# 6    A    b    NA
# 7    B    b     2
# 8    C    b    NA
# 9    D    b     4
# 10   E    b    NA
# 11   A    c     1
# 12   B    c    NA
# 13   C    c    NA
# 14   D    c    NA
# 15   E    c     5

reshape2::dcast()的用法

dcast()实现了将长表转化为宽表的功能。

复制代码
dcast( data, formula, value.var...)

其中,formula的形式为var1+var2~variable, var1和var2表示码是变化中不变的列,variable表示变量名列的列名;

value.var表示数据列的列名。

实例

复制代码
DF=data.frame(v=1:5,key=LETTERS[1:5],vars=sample(letters[1:3],5,replace = T))
#   v key vars
# 1 1   A    c
# 2 2   B    b
# 3 3   C    a
# 4 4   D    b
# 5 5   E    c
dcast(DF,formula = key~vars,value.var = 'v')
#   key  a  b  c
# 1   A NA NA  1
# 2   B NA  2 NA
# 3   C  3 NA NA
# 4   D NA  4 NA
# 5   E NA NA  5

tidyr::gather()的用法

tidyr::spread()的用法

相关推荐
生物信息与育种5 小时前
实战总结:用 rMVP 做植物 GWAS 的标准工作流与避坑指南
人工智能·深度学习·职场和发展·数据分析·r语言
知识分享小能手10 小时前
R语言入门学习教程,从入门到精通,初识R语言(1)
开发语言·学习·r语言
知识分享小能手1 天前
R语言入门学习教程,从入门到精通,R语言多维数据可视化(12)
学习·信息可视化·r语言
知识分享小能手2 天前
R语言入门学习教程,从入门到精通,R语言时间序列数据可视化(11)
学习·信息可视化·r语言
maizeman1262 天前
R语言——折线图与面积图
信息可视化·r语言·折线图·面积图·堆积面积图
知识分享小能手3 天前
R语言入门学习教程,从入门到精通,R语言局部整体型数据可视化(10)
学习·信息可视化·r语言
知识分享小能手4 天前
R语言入门学习教程,从入门到精通,R语言数据计算与分组统计(9)
开发语言·学习·r语言
知识分享小能手5 天前
R语言入门学习教程,从入门到精通,R语言网络关系数据可视化(8)
学习·信息可视化·r语言
l1t6 天前
类似 X-13ARIMA-SEATS 功能的 JDemetra+ 安装和使用
java·数据库·r语言
知识分享小能手6 天前
R语言入门学习教程,从入门到精通,R语言层次关系数据可视化(7)
学习·信息可视化·r语言