R:在没有聚合的情况下转换字符列

R: Casting a character column without aggregation

我想从

转置这个数据框
Cat Group Rank 
229    A     1
229    C     2
230    B     1
230    E     2
231    F     1
231    D     2
..   ..    ..

并使其看起来像

Cat    1     2 
229    A     C
230    B     E
231    F     D
 ..    ..    ..

我用过 dcast 来自 reshape2

Table<- dcast(Table, Cat ~ Rank , value.var = 'Group')

但我在执行时得到以下信息: Aggregation function missing: defaulting to length

并且数据框转换为

Cat    1     2 
229    1     1
230    1     1
231    1     1
 ..    ..    ..

有什么办法可以解决这个问题吗?

我们可以为重复项创建一个序列列,它应该可以工作

library(data.table)
dcast(setDT(Rank2), Cat + rowid(Rank) ~ Rank, value.var = 'Group')