重塑数据时,通过修改数据的结构(行和列)来决定数据的组织方式。
整合数据时,往往将多组观测替换为这些观测计算的描述性统计量。
整合函数的语法:
aggregate(x,by,fun)
x是待折叠的数据的对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测;fun是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。
# 根据气缸数和档位数整合mtcars数据,并返回各个数值型变量的均值
options(digits = 3)
attach(mtcars)
aggdata <- aggregate(mtcars,by=list(group.cyl = cyl,group.gear = gear), FUN=mean,na.rm=TRUE)
aggdata
reshape包中的函数提供了解决汇总问题(重塑与整合)的统一办法,该包的核心思想是创造一个熔化的数据集版本(通过melt函数),然后将其投入(cast函数)到一个所希望的目标对象中。
通过melt函数“熔化”一个数据框、列表或数组,以使每一行都是一个唯一的标识符—变量组合;
首先需要将变量分成编号变量和分析变量。默认情况下,该函数将因子和整数值变量设为编号变量,其余变量为分析变量。
数据集的融合是将它重构为这样一种格式:每个测量变量独占一行,行中带有要唯一确定这个测量所需的标识符变量。
melt函数语法:
1)熔化一个数据框:id.vars指定编号变量,measure.vars指定分析变量
melt(data, id.vars, measure.vars,
variable_name = “variable”, na.rm = !preserve.na, preserve.na = TRUE, …)
2)熔化一个数组
melt(data, varnames = names(dimnames(data)), …)
3)熔化一个列表
melt(data, …, level=1)
应用:本文所采用的数据为R自带的数据集state.x77、iris及随机数生成的数据框