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()的用法

相关推荐
lisw052 天前
R语言的专业网站top5推荐
开发语言·r语言
清同趣科研2 天前
扩增子分析|R分析之微生物生态网络稳定性评估之节点和连接的恒常性、节点持久性以及组成稳定性指数计算
开发语言·r语言
zm-v-159304339864 天前
解锁生命周期评价密码:OpenLCA、GREET 与 R 语言的融合应用
r语言·生命周期
生信大杂烩4 天前
R语言绘图 | 渐变火山图
数据分析·r语言
KY_chenzhao5 天前
用R语言+随机森林玩转遥感空间预测-基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
随机森林·机器学习·r语言·生态·遥感·空间预测
没有梦想的咸鱼185-1037-16635 天前
【生命周期分析(Life Cycle Assessment: LCA)】基于OpenLCA、GREET、R语言的生命周期评价方法、模型构建及典型案例应用
数据分析·r语言
没有梦想的咸鱼185-1037-16636 天前
全球森林数据如何分析?基于R语言森林生态系统结构、功能与稳定性分析与可视化
开发语言·随机森林·数据分析·r语言
Tiger Z7 天前
R 语言科研绘图 --- 桑基图-汇总
开发语言·r语言·贴图
Expecto08 天前
因子分析——数学原理及R语言代码
算法·r语言·统计学·多元统计分析
人类群星闪耀时9 天前
R语言数据挖掘:从“挖井”到“淘金”
开发语言·数据挖掘·r语言