【发布时间】:2020-04-27 06:57:01
【问题描述】:
我有产品列表:P1、P2、P3、P4 属于不同类别,根据 df CAT。 每个产品都有两个相关的时间序列: ts_sales 和 ts_ofs(代表销售和缺货)。
我想将 P1 的销售时间序列与 P2、P3(属于同一类别)的缺货关联起来
这段代码展示了我如何将销售时间序列与同一类别的产品关联起来:
rm(list=ls())
CAT <- data.frame(PROD = c('P1','P2','P3','P4'),CAT = c('C1','C1','C1','C2'))
ts_sales <- list()
ts_sales$'P1' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_sales$'P2' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_sales$'P3' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_sales$'P4' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_ofs <- list()
ts_ofs$'P1' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_ofs$'P2' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_ofs$'P3' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
ts_ofs$'P4' <- ts(runif(10,0,1), start=c(2019,1), frequency = 12)
sales <- with(CAT,split(as.character(PROD), CAT))
sales <- lapply(sales, function(x) ts_sales[x])
ofs <- with(CAT,split(as.character(PROD), CAT))
ofs <- lapply(ofs, function(x) ts_ofs[x])
cor(do.call(ts.intersect, sales$C1))
我试过了:
c(ofs$C1,sales$C1$P1)
但 sales$C1$P1 不会以相同的格式附加
欣赏:)
【问题讨论】:
-
错误,应该是ofs。我重写它。谢谢
-
您的
sales$C1$P1是一个时间序列,而“ofs$C1”只是一个字符向量。预期的输出是什么 -
好的,知道了,我在看没有oupdate的前一个
-
这会很有趣,但并不是真正必要的。谢谢阿克伦 :)
-
你在找
do.call(ts.intersect, Map(c, ofs, sales)$C1)
标签: r list time-series