对不起相对R新手在这里尝试用dplyr做更多 . 我有一个带有id列的大数据框,end(日期为POSIXct)和D(代码结果~6种不同类型),示例如下:
id end D
1143 1996-08-10 KT
1148 2000-07-27 KT
1150 2004-07-02 KT
1158 2001-11-03 KT
我想为结果KT创建一个子集 . 在这个结果中,许多id有1-4个结果,有不同的日期 . 我想创建一个如下所示的宽数据框:
id datetx1 datetx2 datetx3 datetx4
1915 2014-10-13 2014-10-18 <NA> <NA>
2715 2006-09-17 2006-09-17 2006-09-17 2008-02-01
5089 2007-02-02 2007-02-11 <NA> <NA>
5266 2007-04-16 2010-07-14 2010-07-14 <NA>
我一直在努力使用dplyr和tidyr在从长到宽的过程中取得一些成功,但是我对这种方法的日期感到困惑:
transplant<-filter(outcomes, D == "KT") %>%
filter(!is.na(date)) %>%
group_by(id) %>%
arrange((end)) %>%
mutate(number = row_number()) %>%
spread(number, date)
问题在于spread,它在其他列中创建数值,我似乎无法强制进入日期 . 我已经使用了日期as.character,然后重新编码as.Date传播后的工作,但我错过了关于tidyr和日期编码的东西?