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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值