【发布时间】:2021-10-21 22:57:54
【问题描述】:
我有一个大约 2000 行和 3 列的数据框。本质上,我想重塑这个数据框,使其更宽而不是更长。这是我当前数据的一个示例:
| ID | Procedure | Date |
|---|---|---|
| D55 | Sedation | 01/01/2001 |
| D55 | Excision | 01/01/2001 |
| D55 | Biopsy | 01/01/2001 |
| A66 | Sedation | 02/02/2001 |
| A66 | Excision | 02/02/2001 |
| T44 | Sedation | 03/03/2001 |
| T44 | Biopsy | 03/03/2001 |
| T44 | Sedation | 04/04/2001 |
| T44 | Excision | 04/04/2001 |
| G88 | Sedation | 05/05/2001 |
| G88 | Biopsy | 05/05/2001 |
| G88 | Sedation | 06/06/2001 |
| G88 | Excision | 06/06/2001 |
| G88 | Sedation | 07/07/2001 |
| G88 | Re-excision | 07/07/2001 |
我希望每一行都是 ID 的一行,所以我想创建这样的东西:
| ID | Date 1 | Procedure(s) | Date 2 | Procedure(s) | Date 3 | Procedure(s) |
|---|---|---|---|---|---|---|
| D55 | 01/01/2001 | Sedation, Excision, Biopsy | ||||
| A66 | 02/02/2001 | Sedation, Excision | ||||
| T44 | 03/03/2001 | Sedation, Biopsy | 04/04/2001 | Sedation, Excision | ||
| G88 | 05/05/2001 | Sedation, Biopsy | 06/06/2001 | Sedation, Excision | 07/07/2001 | Sedation, Re-excision |
大多数 ID 都有相同的日期,但记录的程序不同。有少数人在随后的日期接受进一步的程序。我看不到任何超过 3 个不同日期的数据,但计算每个 ID 记录的日期的方法会很有用。
到目前为止,我已经尝试过使用 cast 和 dcast,但我并没有真正取得任何进展。我对 R 很陌生,所以任何帮助将不胜感激!感谢阅读。
【问题讨论】: