R-为每行应用时间序列模型



i有一个dataframe(df),该数据集具有以下结构,

ID 2015/01/01 2015/02/01 2015/03/01 2015/04/01
A1 42         42        24          32 
A2 22         22        24          32 
A3 12         15        19          22 
A4 8          12        18          24 
  • 我想为每一行构建时间序列模型,因此会有n时间序列模型其中n = dataframe中的行数

我疲倦了以下内容:

ts_1 <-  ts(df[1:1,], start = c(2015, 05), frequency = 12)
ts_1_stl <- stl(ts_1, s.window = "periodic")

,但我的错误是:

Error in stl(ts_1, s.window = "periodic") : only univariate series are allowed
  • 我在做什么错,我如何应用每行

如果我们在每一行上应用(第一列是'id',一个字符类列,不需要),我们可以将applyMARGIN = 1

一起使用
apply(df[-1], 1, FUN = function(x) ts(x, start = c(2015, 05), frequency = 12))

对于整个数据集,我们需要unlist

ts(unlist(df[-1]), start = c(2015, 05), frequency = 12)

我们假设" df"具有更多数量的列,以具有足够的观察值,即至少2个时期的"周期性"工作

set.seed(24)
df <- cbind(Col1 = LETTERS[1:4], as.data.frame(matrix(rnorm(31*4), ncol=31)))
res <- apply(df[-1], 1, FUN = function(x) stl(ts(x, start = c(2015, 05),
           frequency = 12), s.window = "periodic"))

最新更新