如何使用日期将长数据集折叠成宽数据

How to collapse long data set into wide data using date

我是 R 的新手。我想使用日期将数据折叠成一行。下面是我的三列原始数据集。两行具有相同的 ID。首次认购开始日期为2017-08-20,首次认购结束日期为2018-09-10。下一个订阅开始日期是 2019-05-10,结束日期是 NA(因为订阅正在进行)

编号 | Sbscrption_strt_date | Sbscription_end_date

1234 | 2017-08-20 | 2018-09-10

1234 | 2019-05-10 |不适用

我想在一行而不是两行中查看结果。将创建两个新列 Sbsrciption_strt_date1 和 Sbscription_end_date1。新列 Sbsrciption_strt_date1 将包含 2019-05-10 而 Sbscrption_end_date1 将包含 NA

编号 | Sbscription_strt_date1 | Sbscription_strt_date1 |Sbscription_end_date |Sbscription_end_date1

1234 | 2017-08-20 | 2018-09-10 |2019-05-10 |不适用

我想将两行合二为一。非常感谢您的帮助!

这是一个基础 R 选项 reshape

reshape(transform(df,ids = 1:nrow(df)),direction = "wide",idvar = "ID",timevar = "ids")

这样

  ID Enrollement_date.1 Enrollement_End_date.1 Enrollement_date.2
1 XX         2007-02-01             2017-09-01         2018-09-01
  Enrollement_End_date.2
1                   <NA>

数据

df <- structure(list(ID = c("XX", "XX"), Enrollement_date = c("2007-02-01", 
"2018-09-01"), Enrollement_End_date = c("2017-09-01", NA)), class = "data.frame", row.names = c(NA, 
-2L))