【发布时间】:2021-09-12 18:41:01
【问题描述】:
我有一个数据集DT,其中每一行代表个人在比赛中的表现:
| personID | raceDate | raceID | finPos |
|---|---|---|---|
| person1 | 2009-08-14 | 489801 | 2 |
| person1 | 2010-04-17 | 502397 | 6 |
| person1 | 2011-03-10 | 524554 | 4 |
| person2 | 2009-08-14 | 489801 | 1 |
| person2 | 2011-03-10 | 524554 | 3 |
| ... | ... | ... | ... |
我想转换数据集,以便每人有 1 行,并且按照比赛日期的顺序排列他们的比赛表现(对于未参加特定比赛的个人,NA 值)。例如:
| personID | 489801 | finPos | 502397 | finPos | 524554 | finPos |
|---|---|---|---|---|---|---|
| person1 | 2009-08-14 | 2 | 2010-04-17 | 6 | 2011-03-10 | 4 |
| person2 | 2009-08-14 | 1 | NA | NA | 2011-03-10 | 3 |
我知道我可以通过 reshape2 获得其中的一部分,例如:
reshape(DT, direction = "wide", idvar = "raceID", timevar = "raceDate")
但是有没有办法确保raceID/raceDat/finishPos 的组合保持在一起?
【问题讨论】:
标签: r dataframe reshape tidyr reshape2