reshape2 数据操作 数据融合( cast)
我们在做数据分析的时候,对数据进行操作也是一项极其重要的内容,这里我们同样介绍强大包reshape2,其中的几个函数,对数据进行操作cast和melt两个函数绝对少不了。
首先是cast,把长型数据转换成你想要的任何宽型数据,
dcast(data, formula, fun.aggregate = NULL, ..., margins = NULL, subset = NULL, fill = NULL, drop = TRUE, value.var = guess_value(data))
acast(data, formula, fun.aggregate = NULL, ..., margins = NULL, subset = NULL, fill = NULL, drop = TRUE, value.var = guess_value(data))
参数:
data 要进行转换的数据框
formula 用于转换的公式
fun.aggregate 聚合函数,表达式为:行变量~列变量~三维变量~......,另外,.表示后面没有数据列,…表示之前或之后的所有数据列
margins 用于添加边界汇总数据
subset 用于添加过滤条件,需要载入plyr包
其他三个参数,用到的情况相对较少。
下面来看些具体的例子
先构建一个数据集
1
2
3
4
|
x<- data.frame (id=1:6,
name= c ( "wang" , "zhang" , "li" , "chen" , "zhao" , "song" ),
shuxue= c (89,85,68,79,96,53),
yuwen= c (77,68,86,87,92,63))<br>x
|
先使用melt函数对数据进行融化操作。
1
2
3
|
library (reshape2)<br>x1<- melt (x,id= c ( "id" , "name" ))
x1
|
可以看到数据已经变成了长型数据(melt函数后面详细介绍)。
接下来就是对数据进行各种变型操作了。
1
|
acast (x1,id~variable)
|
1
|
dcast (x1,id~variable)
|
从以上两个执行结果来看,可以看出acast和dcast的区别
这里acast输出结果省略了id这个列,而dcast则输出id列
1
|
acast (x1,id~name~variable)
|
三维的情况下acast输出的是一个数组,而dcast则报错,因为dcast输出结果为数据框。
1
|
dcast (x1,id~variable,mean,margins=T)
|
可以看到,边缘多了两列汇总数据是对行列求平均的结果。
1
|
dcast (x1,id~variable,mean,margins= c ( "id" ))
|
只对列求平均值,当然也可以只对行求平均值,把id改成variable就可以了。
1
2
|
library (plyr)
dcast (x1,id~variable,mean,subset= . (id==1|id==3))
|
这里subset的筛选功能强大可以进行各种各样的筛选操作,类似filter的作用。
1
|
dcast (x1,id+name~variable)
|
数据还原成原来的样子了。
1
|
dcast (x1,variable~name)
|
对行列进行对调。
1
|
acast (x1,variable~id+name)
|
到这里,我们已经着实体会了cast的强大,数据几乎可以转换成任何形式。
跟excel中的数据透视表功能类似
转载于:https://www.cnblogs.com/nkwy2012/p/7418146.html
reshape2 数据操作 数据融合( cast)相关推荐
- Hive:命令行界面、数据类型、DDL数据定义(数据库及表操作/分区分桶)、DML数据操作(数据导入导出)
目录 1.Hive命令行界面 1.1.选项列表 1.2.变量和属性 1.2.1.Hive中变量和属性命名空间 1.2.2.用户自定义变量 1.2.3..hiverc文件 1.3.一次使用的命令 1.4 ...
- 04 数据操作 + 数据预处理【动手学深度学习v2】
数据操作 宽是列的个数 4维是n个3维数组放一起 比如每次读128张图片 5维 视频 有时间维度 [1:3,1:] 1:3--拿1,2行,左闭右开 1:--拿1到所有列 [::3,::2] ::所有行 ...
- 【Pytorch神经网络基础理论篇】 03 数据操作 + 数据预处理
1.数组样例 2.数据操作(代码实现与结果截图) #首先导入torch,虽然被称为pytorch,但是我们应该导入torch而不是pytorch import torch #张量表示一个数值组成的数组 ...
- Pandas数据分析常用数据操作(3年总结)
原创文章,转载请注明来源,谢谢 导入设置 import odps import numpy as np import pandas as pd import matplotlib as mpl imp ...
- 深入mysql语言_MySQL对数据操作的一些深入语法
其他数据操作 数据的操作也叫作crud: C:create R:read U:update D:delete 插入数据 蠕虫复制 就是在已有的数据的基础之上,将原来的数据进行复制,插入到相对应的表中! ...
- HIVE之 DDL 数据定义 DML数据操作
DDL数据库定义 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db.hive (default)> create data ...
- Python数据分析三剑客学习笔记Day3——pandas包的使用:认识series类型,DataFrame类型,读取excel表格数据及数据操作
本文是视频Python数据分析三剑客 数学建模基础 numpy.pandas.matplotlib的学习笔记. -------------------------------------------- ...
- R的数据操作基础(三)——整合、重铸、控制流
在上一篇笔记中我们还遗留了几个问题:1.我们有时还需要更为精确地处理数据集中的数据,这时候涉及数据的整合和重铸:2.有些时候除了整合重铸,我们还需要利用控制流来自编函数.这一篇笔记就处理这两个问题. ...
- mysql json类型数组索引_MySQL JSON 类型数据操作
1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...
最新文章
- Win2008虚拟化实战之Hyper-V快速设置
- vue 中实现异步加载模块
- [TODO]Python拾遗(二)
- JavaScript --- 表单focus,blur,change事件的实现
- 用css实现透明度的方法
- 叮叮叮 重点之中的python必备英语单词(2)来啦!请记得查收
- 张广慧:云计算对游戏开发者的价值
- 用南边代称一个公司,汝竟然也不满?
- slopShell:强大的PHP Webshell
- win10下安装adb
- 三角形~~行列式~~皮克公式~~gcd
- 在腾讯,有多少技术Leader在写代码?
- 2021毓英中学高考成绩查询,泉州知名中学2020高考成绩喜报大集合(7.26更新)
- 通过思翼SIYI MK15E回传Realsense D435i 的 RGB图像
- 转载:一名程序员的磨练
- wifidog 配置文件
- DOS的建文件夹,移动图片,多级文件夹建立
- HTMLCSS常见面试题
- 基于Token的WEB后台认证机制
- jquery-svg-pan-zoom实现svg拖拽放大
热门文章
- r语言electricity数据集_R语言学习10-查看数据
- laravel框架的基础学习路线(不带composer的)
- 仿微信的网络聊天室项目开发【完整源码讲解,Java一年工作经验面试题
- 一次违反常规的Java大厂面试经历,内含福利
- Android之Pull解析XML
- 发那科机器人注油_如何给发那科机器人做三年保养?干货!
- 使用elementui实现表单上传功能_使用ElementUI中的upload组件上传Excel文件
- 商丘网络推广是如何做好网站优化的关键词布局的呢?
- 网站结构优化——不能忽视的优化重点
- linux中js文件有乱码,解决node.js读取文件时中文乱码问题