【发布时间】:2018-06-04 08:30:48
【问题描述】:
对于给定的数据集,我想将我的数据集从长格式转换为宽格式。我已经使用重塑功能来做到这一点。
id status timestamp
1 assigned 2017-01-02
1 done 2017-01-03
1 locked 2017-01-04
2 assigned 2017-01-02
2 done 2017-01-03
2 assigned 2017-01-03
2 done 2017-01-04
2 locked 2017-01-05
3 assigned 2017-01-02
3 done 2017-01-03
3 locked 2017-01-04
...
# reshape function to convert long format to Wide.
temp <- reshape(temp, idvar = "id", timevar = "status", direction = "wide")
结果:
id timestamp.assigned timestamp.done timestamp.locked1 2017-01-02 2017-01-03 2017-01-042 2017-01-02 2017-01-03 2017-01-053 2017-01-02 2017-01-03 2017-01-04
当我这样做时,它会删除一些行,例如:对于 id 2,status=assigned 有多行匹配,它占用第一行。
如何在不删除行的情况下转换为宽。基本上,我不想丢失任何数据。
预期结果:id timestamp.assigned timestamp.done timestamp.locked1 2017-01-02 2017-01-03 2017-01-042 2017-01-02 2017-01-03 2017-01-052 2017-01-03 2017-01-04 2017-01-053 2017-01-02 2017-01-03 2017-01-04
或
id timestamp.assigned timestamp.done timestamp.locked1 2017-01-02 2017-01-03 2017-01-042 2017-01-02 2017-01-03 NA2 2017-01-03 2017-01-04 2017-01-053 2017-01-02 2017-01-03 2017-01-04
【问题讨论】:
-
重复行有什么用?
-
您的答案是什么?
-
@Onyambu 我已经更新了描述并添加了预期的结果。
-
@hpesoj626 我需要它,因为状态可以再次回到分配状态。时间戳不同,因此需要计算状态之间的周转时间。