我有一份数据,本质上是一个矩阵,但格式为data.table:
我们将其称为matA:
Date compA compB compC
200101 1 2 3
200102 2 4 1
如何将矩阵转换为data.table中的数据库类型?
我们称这个数据集为dtB:
Date Company Data
200101 compA 1
200101 compB 2
200101 compC 3
200102 compA 2
200102 compB 4
200102 compC 1
我想到了一种非常愚蠢的方法来列举公司:
comp= as.data.table(c("compA", "compB", "compC"))
date= as.data.table(rep(matA[1,1],3))
data= as.data.table(matA[1,])
dtb= date[,Company := comp]
dtb= dtb[, Data := data]
显然,我最多只能获得200101日期的数据。为了获取200102,我会编写一个for循环。然后,根据列名将200101和200102合并到dtB中。
在data.table中有没有聪明的方法来做到这一点呢?非常感谢。
melt
命令。 - G. Grothendieck