在 r 中跨多行分布 data.frame 数据

distributing data.frame data across multiple rows in r

我正在使用 R 3.5.1

我认为这是一个简单的问题,但我对 R 不是很熟悉。

我有一个 data.frame 对象,看起来像这样

COL1  COL2  COL3
A     blah  3
A     abc   4
A     def   42
B     xyz   10
B     aaa   3
C     pdq   19

我想将 data.table 转换成这样

COLA  COLACount  COLB  COLBCount  COLC COLCCount 
blah  3          xyz   10         pdq  19   
abc   4          aaa   3
def   42

我不确定从哪里开始(或称呼它)。 我考虑过执行以下操作:

但我感觉可能有一个 r package/method 可以简化这个过程。

感谢您的任何建议。

cbind.fill <- function(...){
    nm <- list(...)
    nm <- lapply(nm, as.matrix)
    n <- max(sapply(nm, nrow))
    do.call(cbind, lapply(nm, function (x)
        rbind(x, matrix(, n-nrow(x), ncol(x)))))
} #code from package rowr

do.call(cbind.fill, split(dt, dt$COL1))