重塑 2 列 data.table 从长到宽

Reshaping 2 column data.table from long to wide

这是我的 data.frame:

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

我正在尝试 DesiredOutput<-dcast(df, Label+predictions ~ Label, value.var = "predictions") 但没有成功。感谢您的帮助!

也许基本 R 函数 unstack 是最干净的解决方案:

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

请注意,这个 return 是 data.frame 而不是 data.table,所以如果你想要一个 data.table 最后:

df2 <- setDT(unstack(df))

将return一个data.table。

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