数据处理|数据框重铸
数据处理过程中,针对数据框,可以进行列的添加,以及长、宽数据的转化。
在实际应用中,宽型数据更具可读性,长型数据则更适合做分析。
一 reshape2包中两个主要的函数
melt—将宽型数据融合成长型数据;cast—将长型数据转成宽型数据
此处用R内置的airquality数据集,首先将列名改成小写,然后查看相应的数据
library(reshape2)
1.1 melt函数 (宽转长)
id.vars中指定相应变量;variable.name和value.name分别对variable和value列重命名
airMelt1 <- melt(airquality)
1.1.2 将month和day共同作为ID variables(那些能够区分不同行数据的变量共同作为变量),且修改长数据中的列名
airMelt2 <- melt(airquality, id.vars = c("month", "day"),
1.2 cast函数 (长转宽)
dcast:左边参数表示"ID variables",右边的参数表示measured variables。
1.2.1 month和day是ID variables,variable则表示measured variables。
airMelt3 <- melt(airquality, id.vars = c("month", "day"))
1.2.2 一个数据单元有一个以上的数据。比如,我们的ID variables不包含day,
dcast(airMelt3, month ~ variable)
可以看到每个单元是month与climate组合的个数。所得到数据是month对应的day的记录数
1.2.3 聚合(aggregate)这些数据,比如取mean,median,sum。比如计算均值,通过na.rm = TRUE删除NA值。
dcast(aql, month ~ variable, fun.aggregate = mean, na.rm = TRUE)
二 $、with、within、transform等进行列的添加
head(airquality)
2.1 $符添加列
data<-head(airquality)
2.2 within 必须在新添加的变量中加上花括号
data2 <- within(data,{logwind = log(wind)})
2.3 with 也可以使用with函数,该函数可以用于任何表达式的计算,但每次只能生成一个计算字段,最后还需要结合使用cbind函数
data3 <- cbind(data3,with(data,log(wind)))
2.4 transform函数
data4 <- transform(data,logwind = log(wind),day2 = day^2)
三 参考链接:R语言之数据重塑
An Introduction to reshape2
- 18本纸质书:OpenCV、Python和机器学习,总有一本适合你
- 三种Linux服务器监控技术的对比
- http和www服务基础知识
- 手把手教你在VirtualBox中与主机共享文件夹
- Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署
- Kafka入门初探+伪集群部署
- Beats数据采集---PacketbeatFilebeatTopbeatWinlogBeat使用指南
- linux NFS网络文件系统
- linux基础命令
- 国外大学自办星际赛事 鼓励学生自制AI来对战
- linux中的重要目录
- Mysql-2-数据库基础
- Shell-4-让文本飞
- Java程序员的日常——存储过程知识普及
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python-matplotlib 空间栅格数据可视化
- 图解面试题:如何找到喜欢的电影?
- Java agent 与 byte buddy
- 关于TRTC云端混流的踩坑分享
- 聊聊dubbo-go的ConsistentHashLoadBalance
- R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型
- R语言使用随机技术差分进化算法优化的Nelson
- R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
- R语言和QuantLib中Nelson-Siegel模型收益曲线建模分析
- 用R语言用Nelson Siegel和线性插值模型对债券价格和收益率建模
- R语言LME4混合效应模型研究教师的受欢迎程度
- R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例
- R语言中的风险价值模型度量指标TVaR与VaR
- R语言用线性回归模型预测空气质量臭氧数据
- R语言线性模型臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型