【发布时间】:2017-01-25 15:00:51
【问题描述】:
我有一个数据集如下图:
Frame | X.axis | Y.axis | Z.axis
-------|--------|--------|--------
1 | 0.2 | 0.215 | 0.965
-------|--------|--------|--------
2 | 0.54 | 1.25 | 2.219
-------|--------|--------|--------
1 | 2.124 | 2.418 | 1.35
-------|--------|--------|--------
2 | -1.2 | 0.49 | 1.87
-------|--------|--------|--------
1 | 6.42 | -1.28 | 7.1
-------|--------|--------|--------
2 | 6.45 | -2.5 | 8.5
我想将上表改造成如下所示:
frame1.X.axis | frame1.Y.axis | frame1.Z.axis | frame2.X.axis | frame2.Y.axis | frame2.Z.axis
--------|--------|--------|--------|--------|--------
0.2 | 0.215 | 0.965 | 0.54 | 1.25 | 2.219
--------|--------|--------|--------|--------|--------
2.124 | 2.418 | 1.35 | -1.2 | 0.49 | 1.87
--------|--------|--------|--------|--------|--------
6.42 | -1.28 | 7.1 | 6.45 | -2.5 | 8.5
上述任务如何实现?
重要提示:
真实数据集有 16 帧而不是 2。要传播的列是 90 而不是 3。所以我不想要一个需要我手动提及新列名的函数。我希望函数以某种方式自动命名列名。
我尝试过使用tidyr 包的spread 函数,但我无法使用它。然后我尝试了reshape 函数,但它也要求提供新的列名。
【问题讨论】:
-
请参阅this Q/A 以提供可重现的数据。