reshape包使用

reshape包

reshape包是一套重构和整合数据的绝妙的万能工具。

#安装

install.packages("reshape")

大致来说,你首先需要将数据“融合(melt)”,以使每一行都是一个唯一标识符-变量组合。然后将数据“重铸(cast)”为你想要的任何形状。

1. 融合

每个测量变量独占一行,行中带有要唯一确定这个测量所需的标识符变量。

有了融合后的数据,可以使用cast()函数将它重铸为任意形状。

2. 重铸

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

newdata <- cast(md, formula, FUN)

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

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

这个公式中,rowvar1 + rowvar2 + ...定义了要划掉的变量集合,以确定各行的内容,而colvar1 + colvar2 + ...则定义了要划掉的,确定各列内容的变量集合。

3. 示例:

ID <- c(1,1,2,2)

Time <- c(1,2,1,2)

X1 <- c(5,3,6,2)

X2 <- c(6,5,1,4)

mydata <- cbind(ID,Time,X1,X2)

mydata <- as.data.frame(mydata)

mydata

初始表格

3.1 先融合:

md <- melt(mydata, id=c("ID", "Time")

md


融合数据

3.2.1 执行整合

(a)

cast(md, ID ~ variable, mean)

重塑整合后

(b)

cast(md, Time ~ variable, mean)

重塑整合后

(c)

cast(md, ID ~ Time, mean)

重塑整合后

3.2.2 不执行整合

(a)

cast(md, ID + Time ~ variable)

重塑数据

(b)

cast(md, ID + variable ~ Time)

重塑数据

(c)

cast(md, ID ~ variable + Time)

重塑数据

你可能感兴趣的:(reshape包使用)