创建多变量未来数据帧循环

Create multivariate future data frame loop

有没有比我在下面使用的循环更有效的方法来创建未来的数据框?可能使用 purrr?

这个循环对我有用,运行时间效率很低。

prods <- as.vector(unique(sales$ProdLine))
class <- as.vector(unique(sales$Class))
ord <- as.vector(unique(sales$Ordertype))
rep <- as.vector(unique(sales$Rep))
type <- as.vector(unique(sales$Type))

Future_Frame <- data.frame()

for (p in 1:length(unique(prods))) {
 for (c in 1:length(unique(class))) {
  for (o in 1:length(unique(ord))) {
   for (r in 1:length(unique(rep))) {
    for (t in 1:length(unique(type))) {
    
    Dates = seq(max(sales$Date), by = "week", length.out = 52)
    
    d_table <-  Dates %>% as.data.frame() %>% 
      mutate(ProdLine = prods[[p]],
             Class = class[[c]],
             OrderType = ord[[o]],
             Type = type[[t]],
             rep = rep[[r]])
          
    Future_Frame <- rbind(Future_Frame, d_table)
    
    }
   }
  }
 }
}

'''

尝试 plyr 包中的 expand.grid() 函数。

prods <- as.vector(unique(sales$ProdLine))
class <- as.vector(unique(sales$Class))
ord <- as.vector(unique(sales$Ordertype))
rep <- as.vector(unique(sales$Rep))
type <- as.vector(unique(sales$Type))

library(plyr)
Future_Frame = expand.grid(seq(max(sales$Date), by = "week", length.out = 52)
                           ,prods
                           ,class
                           ,ord
                           ,rep
                           ,type)