我有一张包含历史文章要求的大桌子。该列表大约有200万行,包含150,000种不同的文章。
Actuals<- data.frame(Articel=c("A","A","B","B","n","n"), Date=c("2018-1-01","2018-1-02","2018-1-01","2018-1-02","2018-1-01","2018-1-02"),
Quantity=c(33,42,21,25,77,88))
对于进一步处理,(ABC / XYZ-分析和预测),我需要在不同的列表中的每篇文章的时间序列。
过去,我在for循环中使用了子集化函数来创建时间序列列表
#Build Time series
groups<-unique(Actuals$Article)
Actuals_ts<- list ()
for (i in 1:length(groups)){
name<-paste(i,groups[i],sep=': ')
Actuals_ts[[name]]<-subset(Actuals,Actuals$ident==groups[i])}
在这种情况下,使用150,000篇文章,这是不可行的。你能想到任何工作吗?提前谢谢。
修改 我也试过了分割功能:
`tic_start_split = Sys.time()
actuals_ts<-split(Actuals,with(Actuals,interaction(Actuals$ident)),drop = TRUE)
tic_end_split = Sys.time()
> tic_start_split
[1] "2018-03-13 12:59:20 CET"
> tic_end_split
[1] "2018-03-13 13:10:44 CET"`
结果是1.8TB的大型列表。
实际的拆分过程大约需要10分钟:
但之后R再将结果加载30分钟。有没有办法把它搞定?