首页 > 解决方案 > 在 R 中转置和创建新变量

问题描述

我有一个具有以下结构的数据框:

study_id date
1        01/01/2011
2        01/01/2012
2        01/01/2013
3        01/01/2014
3        01/01/2015
3        01/01/2016

我想将数据框更改为:

study_id date_1      date_2    date_3
1        01/01/2011  NA         NA
2        01/01/2012  01/01/2013 NA
3        01/01/2014  01/01/2014 01/01/2016

请注意这些日期只是示例,日期不遵循此顺序(01/01/2011 + 1 年等等)

PS:感谢网络程序员编辑我的问题。在我注意到你修复它之前我删除了。

标签: r

解决方案


我们可以dcast使用data.table

library(data.table)
dcast(setDT(df1), study_id ~ paste0("date_", rowid(study_id)), value.var = "date")
#study_id     date_1     date_2     date_3
#1:        1 01/01/2011       <NA>       <NA>
#2:        2 01/01/2012 01/01/2013       <NA>
#3:        3 01/01/2014 01/01/2015 01/01/2016

推荐阅读