Forecat:R中的尺寸数量不正确

Forecat:R中的尺寸数量不正确,r,dplyr,time-series,lapply,forecasting,R,Dplyr,Time Series,Lapply,Forecasting,我进行TS分析。 我的dput() 所以对于5个位置(“蛋糕”、“冰淇淋”、“kex”、“面包”、“馅饼”),我要执行预测 library(forecast) ld <- lapply(df, function(x) {ts(c(t(x[,-1])), start = min(x[,1]), frequency = 12)}) lts <- lapply(ld, ets, model = "ZZZ") lapply(lts, forecast) 我认为这与我的数据结构有关,但我无法

我进行TS分析。 我的dput()

所以对于5个位置(“蛋糕”、“冰淇淋”、“kex”、“面包”、“馅饼”),我要执行预测

library(forecast)
ld <- lapply(df, function(x) {ts(c(t(x[,-1])), start = min(x[,1]), frequency = 12)})
lts <- lapply(ld, ets, model = "ZZZ")
lapply(lts, forecast)
我认为这与我的数据结构有关,但我无法解释这到底是怎么回事

我如何理解,为什么我不能进行分析。也许是我搞错了分组

作为最后的结果,我想要

month   year    cake    icecream    kex    bread
Jan    1988     1226    1019       1149   1220
Feb    1988     1627    1530        1649    1341

(它是预测值)

这是这个问题的继续:

用于分析的代码是相同的,但数据的结构不同,这就是问题所在,如果您将数据转换为与前一个相同的结构,问题就解决了

library(reshape)
df <- cast(melt(df, id=c("month", "year"), na.rm=TRUE), 
           variable + year ~ month)[, c("variable", "year", substring(month.name, 1, 3))]
colnames(df)[1] <- "group"
df[, substring(month.name, 1, 3)] <- lapply(df[, substring(month.name, 1, 3)], 
                                            function(x) as.numeric(as.character(x)))
库(重塑)

df这是这个问题的继续:

用于分析的代码是相同的,但数据的结构不同,这就是问题所在,如果您将数据转换为与前一个相同的结构,问题就解决了

library(reshape)
df <- cast(melt(df, id=c("month", "year"), na.rm=TRUE), 
           variable + year ~ month)[, c("variable", "year", substring(month.name, 1, 3))]
colnames(df)[1] <- "group"
df[, substring(month.name, 1, 3)] <- lapply(df[, substring(month.name, 1, 3)], 
                                            function(x) as.numeric(as.character(x)))
库(重塑)

当你做
lappy(df,函数(x)
x
将是一个向量。在函数中,你然后使用
x[,-1]
,建议你要删除第一列(第二维度)。但是只有一个维度!这就是为什么你会得到一个错误。
lappy(df[-c(1,2)],函数(x){myts当你做
lappy时(df,函数(x)
x
将是一个向量。在函数中,您然后使用
x[,-1]
,建议您要删除第一列(第二维度)。但是只有一个维度!这就是为什么会出现错误。
lappy(df[-c(1,2)],函数(x){myts我不太愿意向您寻求帮助,但我请求您帮助,如果这对您来说不是劳动密集型的,那么聚合在时间上存在问题,因此我无法冷静地分析时间序列。告诉我如何解决此问题,请原谅我打扰您。我不太愿意向您寻求帮助,但如果这不是劳动密集型的,我请求您帮助对于你来说,聚合在时间上存在问题,因此我无法冷静地分析时间序列。请告诉我如何解决这个问题,对不起,打扰你了。
library(reshape)
df <- cast(melt(df, id=c("month", "year"), na.rm=TRUE), 
           variable + year ~ month)[, c("variable", "year", substring(month.name, 1, 3))]
colnames(df)[1] <- "group"
df[, substring(month.name, 1, 3)] <- lapply(df[, substring(month.name, 1, 3)], 
                                            function(x) as.numeric(as.character(x)))
library(forecast)
ld <- split(df[, -1], df$group)
ld <- lapply(ld, function(x) {ts(c(t(x[,-1])), start = min(x[,1]), frequency = 12)})
lts <- lapply(ld, ets, model = "ZZZ")
lf <- lapply(lts, forecast)
lf <- sapply(1:length(lf), 
             function(x) {d <- as.data.frame(lf[[x]])[, 1, drop = F]
                          colnames(d) <- names(lf)[x]
                          d},
             simplify = FALSE)
do.call(cbind, lf)
             cake icecream       kex    bread       pie
May 1987 7480.974 5134.009  9830.727 3903.814 11068.371
Jun 1987 7881.644 5519.485 10254.112 4285.591 11490.782
Jul 1987 8807.531 6429.317 11193.300 5194.330 12436.630
Aug 1987 8079.533 5685.421 10483.109 4451.265 11729.948
Sep 1987 7024.136 4615.184  9446.217 3383.871 10695.142
...