抱歉相对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)
问题在于传播,它会在其他列中创建我似乎无法强制进入日期的数值。我已经使用了日期as.character编码然后重新编码as.Date传播后的工作,但我错过了关于tidyr和日期编码的东西?