如何将htest列表存储到矩阵中?

时间:2015-08-03 14:23:56

标签: r

我正在运行kpss.test包中的tseries。由于它是假设检验,因此它具有类htest。然而,我想将这个测试应用于遍历整个系列的时间序列,但是在特定的时间范围内,对每个时间帧应用kpss测试并将结果存储到矩阵中。但是,我想你把它存储到矩阵中它必须具有相同的矩阵类。但我无法使用htestas.matrix函数更改as.vector的类,但我无法正确存储它。有人可以建议我取得成功吗?

3 个答案:

答案 0 :(得分:1)

这是两个选项。

首先,您可以将其存储在list中。像

这样的东西
save <- list()
for (i in seq_along(timeframes)) {
  l[[i]] <- kpss.test(timeframes[i])
}

其次,你可以提取你想要的碎片并将它们粘在一个矩阵中。

save <- matrix(nrow=length(timeframes), ncol=2)
for (i in seq_along(timeframes)) [
  k <- kpss.test(timeframes[i])
  save[i, ] <- c(k$statistic.KPSS, c$p.value)
}

答案 1 :(得分:1)

我会为此推荐broom包。

library(broom)
x <- rnorm(1000)  # is level stationary
tidy(kpss.test(x))

答案 2 :(得分:0)

好吧,我可以很容易地解决这个空洞的data.frame问题。谢谢!

    df <- data.frame(statistic = numeric(0), parameter =  integer(0), p.value = numeric(0), method = character(0), data.name = character(0))
    for (i in 1:3286){
      P_2044050.ts <- ts(P_2044050.df[i:(i+364),])
      kpss_posto <- kpss.test(P_2044050.ts)
      df[i,] <- kpss_posto
    }