对不起相对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和日期编码的东西?