reshape2

 

require(reshape2)
x = data.frame(subject = c("John", "Mary"),
                time = c(1,1),
                age = c(33,NA),
                weight = c(90, NA),
                height = c(2,2))
x
  subject time age weight height
1    John    1  33     90      2
2    Mary    1  NA     NA      2


molten = melt(x, id = c("subject", "time"))
molten
  subject time variable value
1    John    1      age    33
2    Mary    1      age    NA
3    John    1   weight    90
4    Mary    1   weight    NA
5    John    1   height     2
6    Mary    1   height     2


molten = melt(x, id = c("subject", "time"))
molten
  subject time variable value
1    John    1      age    33
2    Mary    1      age    NA
3    John    1   weight    90
4    Mary    1   weight    NA
5    John    1   height     2
6    Mary    1   height     2


molten = melt(x, id = c("subject", "time"), na.rm = TRUE)
molten
  subject time variable value
1    John    1      age    33
3    John    1   weight    90
5    John    1   height     2
6    Mary    1   height     2


dcast(molten, formula = time + subject ~ variable)
  time subject age weight height
1    1    John  33     90      2
2    1    Mary  NA     NA      2


dcast(molten, formula = subject + time  ~ variable)
  subject time age weight height
1    John    1  33     90      2
2    Mary    1  NA     NA      2


dcast(molten, formula = subject  ~ variable)
  subject age weight height
1    John  33     90      2
2    Mary  NA     NA      2


dcast(molten, formula = ...  ~ variable)
  subject time age weight height
1    John    1  33     90      2
2    Mary    1  NA     NA      2

 

REF:

https://www.r-bloggers.com/reshape-and-aggregate-data-with-the-r-package-reshape2/

posted @ 2018-05-08 04:59 emanlee 阅读(...) 评论(...) 编辑 收藏