分享

reshape2 使用

 茶与生信 2020-08-02

安装

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语言实战 第二版》

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多