data.table(A=c("a","a","b","b","c","c"),
B=c(3,2,4,7,12,13))->dt
所需输出:
A V1 V2
a 3 2
b 4 7
c 12 13
我想在将 B 列转换为行值时保留它们的顺序。任何帮助将不胜感激。
Dcast 命令没有任何帮助。我进一步尝试了这个:
as.data.frame(matrix(dt$B[dt$B!=""], ncol=2, byrow=TRUE)) -> d1
虽然它确实达到了目的,但我不确定是否将其用于大数据集,因为它可能会打乱 B 列和 A 列的顺序。
我能够通过
dcast()
获得所需的输出:
dcast(dt, A ~ paste0("VAR", rowid(A)) , value.var = "B")
#> Key: <A>
#> A VAR1 VAR2
#> <char> <num> <num>
#> 1: a 3 2
#> 2: b 4 7
#> 3: c 12 13