使用 dcast 进行非常规数据帧重塑

Unconventional data frame reshaping using dcast

我要转换table dt:

Who T Res
Pam 2 B
Pam 3 E
Pam 5 F
Bob 2 B
Bob 5 C

进入

Who T1 Res1 T2 Res2 T3 Res3
Pam  2  B    3  E    5  F 
Bob  2  B    5  C   NA  NA

使用来自 data.table 的 dcast 或其他 function/s。

我已经尝试过 dcast(dt, Who ~ T + Res) 之类的东西,但得到的只是不想要的输出。

你可以使用-

library(data.table)

setDT(dt)
dcast(dt, Who ~ rowid(Who), value.var = c('T', 'Res'))

#   Who T_1 T_2 T_3 Res_1 Res_2 Res_3
#1: Bob   2   5  NA     B     C  <NA>
#2: Pam   2   3   5     B     E     F