首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中使用`apply`为时间序列数据绘制acf函数

如何在R中使用`apply`为时间序列数据绘制acf函数
EN

Stack Overflow用户
提问于 2020-09-01 17:11:08
回答 1查看 68关注 0票数 0

我有时间序列数据。我想应用acf函数并绘制所有列的结果。我还想让绘图自动生成每个单变量序列的标题。

我尝试了以下几种方法:

代码语言:javascript
复制
library(quantmod)
library(TSclust)
library(ggplot2)
library(tsibble)
library(vcd)
## Prepare the data
symbols = c('AZN', 'BP', 'AAPL')

## Start and end time
start = as.Date("2015-01-05")
until = as.Date("2015-12-31")

stocks.Cl = lapply(symbols, function(symbol) {
  Close = getSymbols(symbol,src='yahoo', from = start, to = until, auto.assign = FALSE)[, 4]
  names(Close) = symbol
  Close
})
stocks.Cl = do.call(merge.xts,stocks.Cl)

acf.dat <- apply(stocks.Cl, MARGIN= 2, FUN = plot(acf))

但我得到了以下信息:

代码语言:javascript
复制
Error in curve(expr = x, from = from, to = to, xlim = xlim, ylab = ylab,  : 
  'expr' did not evaluate to an object of length 'n'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 17:55:55

您需要使用匿名函数将附加函数应用于传递的对象。我们不使用MARGIN = 2apply,而是使用lapply,并迭代stocks.Clnames作为绘图的标题。

代码语言:javascript
复制
lapply(names(stocks.Cl), function(i) plot(acf(stocks.Cl[, i]), main = i))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63684678

复制
相关文章

相似问题

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