我有一个很大的data.table,我正在使用它对不同级别的数据进行后续分析。为了避免重复的代码,我想把我的data.table分成更小的块,并将它们保存为列表(的元素)。几天前,我看到一个帖子,上面用到了这样的东西:
setDT(mtcars)
names(mtcars)
combi <- dcast(mtcars[,.(carb, gear, mpg, cyl, vs)], cyl + gear ~ vs|cyl)这导致了一个单独的(宽的) data.table,其中包含cyl,gear,vs -分别用于年份cyl。重点是为每个cyl保存单独的data.table,不一定是在宽表上(我相信这篇文章使用了cast或dcast来达到预期的结果)
然而,我在任何地方都找不到这篇文章,也找不到任何关于类似操作的文档。有什么想法吗?
发布于 2020-03-27 11:58:59
下面展示了如何将每个级别的cyl的数据表放入列表中-如果您想将它们写入.txt文件等,只需将该部分更改为fwrite(...)即可。请注意,它是按照cyl在数据中的顺序执行的(当cyl =6时,i=1;当cyl =4时,i=2...):
dtCars <- data.table(mtcars, keep.rownames = TRUE)
carsList <- list()
for(i in 1:length(dtCars[,unique(cyl)])){
carsList[[i]] <- dtCars[cyl == unique(cyl)[i]]
}https://stackoverflow.com/questions/60857944
复制相似问题