[英]Dataframe reshape/transpose using dplyr
您可以在tidyr
包中使用spread()
函数:
设置软件包和数据:
library(dplyr)
library(tidyr)
df=data.frame(
id=c(1,1,1,1,1,2,2),
age=c(3,3,3,3,3,51,51),
sex=c('f','f','f','f','f','m','m'),
type=c('a','a','a','b','b','a','a'),
tablet=c('t1','t2','t3','t1','t5','t3','t10'),
level=c(1,2,3,1,4,2,3),
status=c('n','n','n','n','n','y','y')
)
使用group_by()
通过ID和类型获得结果。
使用spread()
将数据与包含列名键的tablet
列和包含值的level
列进行转置。 默认情况下, spread()
将使用NA
填充空白。
使用select()
将列重新排列为所需的格式:
df %>%
group_by(id,type) %>%
spread(tablet, level) %>%
select(id,age,sex,type,t1,t2,t3,t5,t10,status)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.