首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将`lapply`函数应用于一组时间序列数据集

如何将`lapply`函数应用于一组时间序列数据集
EN

Stack Overflow用户
提问于 2020-09-18 17:32:26
回答 1查看 109关注 0票数 1

我有时间序列数据。这些数据包含四个几年的单变量时间序列列。我想将ARIMA模型拟合到前4年每一年的单变量时间序列数据中。

我试过这个:

代码语言:javascript
运行
复制
library(ggplot2)
library(forecast)
library(tseries)
library(zoo)
library(dplyr)
library(data.table)
data("EuStockMarkets")
dat <- EuStockMarkets
res <- lapply(split(as.zoo(EuStockMarkets), as.integer(time(EuStockMarkets))), as.ts)
datNew <- lapply(5:8, function(i) ts(res[[i]]))
dat.log <- lapply(1:4, function(i) log(datNew[[i]]))
dat.diff <- lapply(1:4, function(i)diff(dat.log[[i]]))
Logreturns <- dat.diff

下面的代码不能正常工作,因为它只给了我4个值。然而,我接受它给我16个值(4年,每年4个单变量时间序列)

代码语言:javascript
运行
复制
Arima.model <- lapply(1:4, function(i)auto.arima(Logreturns[[i]][,i]))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-18 20:11:39

我认为您需要的是两个lapply,一个用于迭代每个列表,另一个用于迭代列表的每一列。

代码语言:javascript
运行
复制
result <- unlist(lapply(seq_along(Logreturns), function(i) 
                 lapply(seq_len(ncol(Logreturns[[i]])), function(j)
                        auto.arima(Logreturns[[i]][,j]))), recursive = FALSE)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63953097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档