2

我有一长串xts对象,我想自动绘制并将它们保存到一个文件夹中(因为手动处理 >500 个图需要很长时间)。棘手的部分似乎是将函数应用于xts对象列表。例如,根据日期获取列表元素的通用命名方法(列表xts中的每个对象都是唯一的一天),并绘制每个对象并将它们保存到具有自己名称的文件路径中。

数据可以在以前的帖子中找到。每个xts元素都是列表中唯一的一天,带有价格和数量列。我正在使用最新的 R (2.15) 包 xts、TTR 和 quantmod。

根据r-bloggers上的一篇精彩文章,我已经尝试使用此代码来命名列表元素:

names(sample.data.uniquePOS) <- paste0("sample.data.uniquePOS", lapply(sample.data.uniquePOS, function(x) .indexday(sample.data.uniquePOS)))                                                    

这应该通过它们的日期索引来命名它们(例如,如果 2012 年 1 月 1 日,那么它将是“2012-01-01”作为元素名称)。不幸的是,它不起作用,生成一个长度列表,sample.data.uniquePOS但每个元素都命名为sample.data.uniquePOSnumeric(0)。我认为问题在于.indexday被应用于列表,而应该应用于xts对象,但我不知道如何解决它。

下一步是生成将绘图保存到的文件路径,然后执行绘图:

mypath <- file.path("C:", "Documents and Settings", 
                              paste("Date_", names(sample.data.uniquePOS), ".jpg", sep = ""))

jpg(file=mypath)
mytitle = paste("my title is", names(sample.data.uniquePOS))
candleChart(sample.data.uniquePOS[[1]]:sample.data.uniquePOS[[length(sample.data.uniquePOS)]])
dev.off()
}

这有同样的问题,candleChart需要应用于xts对象而不是列表:

Error in try.xts(x, error = "chartSeries requires an xtsible object") : 
  chartSeries requires an xtsible object

我真的很感激这方面的帮助!

4

0 回答 0