安装install.packages("reshape2")
使用步骤数据融化(melt):以使每一行都是唯一的标识符-变量组合 和数据重铸(dcast):将数据变成你想要的任意形状 实例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 <- data.frame(ID, Time, X1, X2) mydata
## ID Time X1 X2 ## 1 1 1 5 6 ## 2 1 2 3 5 ## 3 2 1 6 1 ## 4 2 2 2 4 (1) 数据融化每个测量变量占一行, 行中带有要唯一确定这个变量所需的标识符变量 library(reshape2) md <- melt(mydata, id =c("ID", "Time")) md
## 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
(2) 重铸执行整合: dcast(md, ID~variable, mean) ## ID X1 X2 ## 1 1 4 5.5 ## 2 2 4 2.5
dcast(md, Time~variable, mean) ## Time X1 X2 ## 1 1 5.5 3.5 ## 2 2 2.5 4.5
dcast(md, ID~Time, mean) ## ID 1 2 ## 1 1 5.5 4 ## 2 2 3.5 3
不执行整合: dcast(md, 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(md, 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(md, ID~variable+Time) ## ID X1_1 X1_2 X2_1 X2_2 ## 1 1 5 3 6 5 ## 2 2 6 2 1 4
以上内容参考《R语言实战 第二版》
|