按字母顺序将data.table分成大致相等的部分

时间:2017-02-09 15:17:57

标签: r csv data.table plyr

我正在尝试将相对较大的data.table拆分为大致相等的部分,以将名称输出到csv文件中。 我已经实施了基于Split data.table into roughly equal parts

的解决方案
library(data.table)
library(plyr)
dt <- data.table(Name =  letters)
bins <- 5
dt[order(-rank(Name)), Split.ID := as.integer(runif(.N,0,bins))]

d_ply(dt[order(-rank(Name))], .(Split.ID),
      function(sdf) write.csv(x = sdf[,1] , file = paste0("Output/test.",sdf$Split.ID[[1]],".csv"), quote = FALSE, row.names = FALSE, eol = ", "))

此解决方案的问题是csv文件中名称的顺序是按字母顺序排列的,但由于Split.ID的随机性,因此不会为所有csv文件保留它。

0 个答案:

没有答案