重新整理2列data.table从long到wide

时间:2016-07-12 15:47:32

标签: r data.table reshape reshape2

这是我的data.frame:

<?= $auditID ?>

期望的输出:

library(data.table)
    df<- fread('

predictions Label
   3           A
   4           B
   5           C
   1           A
   2           B
   3           C
')

我正在尝试A B C 3 4 5 1 2 3 但没有成功。感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

df[, idx := 1:.N, by = Label]

dcast(df, idx ~ Label, value.var = 'predictions')
#   idx A B C
#1:   1 3 4 5
#2:   2 1 2 3

答案 1 :(得分:2)

可能基本R函数$bla = preg_match_all('/\{\{(\w+)\}\}/', 'bla {{ble}}', $dataToFill); 是最干净的解决方案:

unstack

请注意,这会返回data.frame而不是data.table,所以如果你想在最后输入data.table:

unstack(df)
  A B C
1 3 4 5
2 1 2 3

将返回data.table。