美文网首页R语言学习笔记
《R语言实战》学习笔记---Chapter5(10) 高级数据管

《R语言实战》学习笔记---Chapter5(10) 高级数据管

作者: RSP小白之路 | 来源:发表于2023-08-26 08:59 被阅读0次

数据重构简单实践

reshape2包

reshape2 包是一套重构和整合数据集的绝妙的万能工具,这里只按照本书做简单用法学习。它的深入功能要使用一个包,先要安装:

if(!require(reshape2)) install.packages("reshape2")

数据融合

数据融合(melt)使每一行都是唯一的标识符-变量组合。
使用书中的例子进行说明吧:

rm(list = ls())
ID <- c(1,1,2,2)
Time <- c(1,2,1,2)
X1 <- c(5,3,6,2)
X2 <- c(6,5,1,4)
mydt <- data.frame(ID, Time,X1,X2 )
> print(mydt)
  ID Time X1 X2
1  1    1  5  6
2  1    2  3  5
3  2    1  6  1
4  2    2  2  4

这个数据框中,标识变量为ID和Time,观测值数据变量为X1和X2,现在要做的是,使标识变量为ID和Time能够唯一地确定一个观测值,X1和X2则作为一个新衍生的变量的观测值成为一列,它们的观测值为值变量作为一列。

> if(!require(reshape2)) install.packages("reshape2")
载入需要的程辑包:reshape2

载入程辑包:‘reshape2’

The following object is masked from ‘package:tidyr’:

    smiths

> melt(mydt, id.vars = c("ID" , "Time"))
  ID Time variable value
1  1    1       X1     5
2  1    2       X1     3
3  2    1       X1     6
4  2    2       X1     2
5  1    1       X2     6
6  1    2       X2     5
7  2    1       X2     1
8  2    2       X2     4

注意, 必须指定要唯一确定每个测量所需的变量(ID和Time),而表示测量变量名的变量(X1或X2) 将由程序为你自动创建。

数据重铸

融合后的数据, 现在就可以使用dcast() 函数将它重铸为任意形状了。数据重铸 (cast) 为你想要的任何形状。 在重铸过程中, 你可以使用任何函数对数据进行整合。

dcast() 函数读取已融合的数据, 并使用你提供的公式和一个(可选的) 用于整合数据的函数将其重塑。

调用格式为:

newdata <- dcast(md, formula, fun.aggregate)

其中的 md 为已融合的数据, formula 描述了想要的最后结果, 而
fun.aggregate 是(可选的) 数据整合函数。其接受的公式形如:

rowvar1 + rowvar2 + ... ~ colvar1 + colvar2 + ...

[图片上传失败...(image-91e2e-1691908043678)]书中有一个图片总结的很好,可是不知道为何最近简书无法上传图片。

那我只能把图片列举的每种结果都运行一次了,我们一一来试过:

mt <- melt(mydt, id.vars = c("ID" , "Time"))   
mt # 运行melt函数后融合数据集

  ID Time variable value
1  1    1       X1     5
2  1    2       X1     3
3  2    1       X1     6
4  2    2       X1     2
5  1    1       X2     6
6  1    2       X2     5
7  2    1       X2     1
8  2    2       X2     4

不执行整合

  • dcast(mt, ID + Time~variable)
 ID Time X1 X2
1  1    1  5  6
2  1    2  3  5
3  2    1  6  1
4  2    2  2  4
  • dcast(mt, ID + variable~Time)
  ID variable 1 2
1  1       X1 5 3
2  1       X2 6 5
3  2       X1 6 2
4  2       X2 1 4

执行整合

  • dcast(mt, ID~variable, mean)
  ID X1  X2
1  1  4 5.5
2  2  4 2.5
  • dcast(mt, Time~variable, mean)
  Time  X1  X2
1    1 5.5 3.5
2    2 2.5 4.5
  • dcast(mt, ID~Time, mean)
  ID   1 2
1  1 5.5 4
2  2 3.5 3

如你所见, 函数melt() 和dcast() 提供了令人惊叹的灵活性。

相关文章

  • 第2章 创建数据集

    《R语言实战》笔记系列 本章学习大纲 1.R的数据结构 2.输入数据 3.导入数据 4.标注数据 第一部分 R的数...

  • R 语言实战 读书笔记

    R语言实战(第2版) 学习笔记 1. R语言介绍 1.1 为什么用R语言 bla 1.2 基本操作 图表演示命令 ...

  • 【R语言实战】Chapter5 高级数据管理

    写在前面前面的初级数据管理只能让你了解一下R在处理各种不同类型数据时发挥的便捷性,平时的科研工作中遇到最多的还是高...

  • 推荐关于R的几本书

    推荐几本学习R语言的好书。嘻嘻。 1、数据科学:R语言实战 [美] Dan Toomey(丹·图米) 著;刘丽君,...

  • day5 阿来

    继续学习R语言 R语言数据学习 数据R语言学习.png 数据输入 数据输出 总结 R语言学习的第二天,熟悉了很多操...

  • 备战美赛

    如果仍然选择大数据处理这块,那么对于R语言的运用必须得较为精通,学习资料有两大块:R语言实战,R数据可视化手册,T...

  • 学习小组Day4笔记--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • 学习小组Day4--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • R 语言--日期值的输入

    学习R语言,很多人都推荐使用图灵程序设计丛书中的"R in Action"-《R语言实战》作为R语言学习的入门书籍...

  • 学习小组Day5笔记--kan

    笔记来自生信星球学习小组资料 Day5 学习内容-R语言数据类型 1.思维导图镇楼 2.R语言数据类型 向量 ve...

网友评论

    本文标题:《R语言实战》学习笔记---Chapter5(10) 高级数据管

    本文链接:https://www.haomeiwen.com/subject/dfpxmdtx.html