重塑 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
这是我的 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