【发布时间】:2015-09-01 11:19:02
【问题描述】:
我有一个类似的数据表(数据不一定按'col1'排序)
col0 col1 col2
1: abc 1 a
2: abc 2 b
3: abc 3 c
4: abc 4 d
5: abc 5 e
6: def 1 a
7: def 2 b
8: def 3 c
9: def 4 d
10: def 5 e
我想通过以下方式重塑它
col0 col1 col2 new_1 new_2 new_3 new_4
1: abc 1 a NA NA NA NA
2: abc 2 b a NA NA NA
3: abc 3 c b a NA NA
4: abc 4 d c b a NA
5: abc 5 e d c b a
6: def 1 a NA NA NA NA
7: def 2 b a NA NA NA
8: def 3 c b a NA NA
9: def 4 d c b a NA
10: def 5 e d c b a
基本上,我想为上述同一行中的每一行获取先前出现的 col2 值,如果没有,则相应的新列应该说 NA。
我当然可以通过在 col2 上合并 5 次来做到这一点,但我需要在一张大桌子上执行此操作(在这种情况下,我将不得不合并 20-30 次)。
在 R 中用 1 行或 2 行实现它的最佳方法是什么?
【问题讨论】:
-
任何人都可以在不使用开发人员版本的 data.table 的情况下提供不同的解决方案吗?仅使用 CRAN 版本!我
标签: r data.table reshape2