r - Quantmod R 中带有 csv 的 getSymbols

标签 r csv quantmod quantstrat

我正在尝试使用 quantmod::getSymbols 将一组符号上传到包 quantstrat 中。

我正在加载的符号在雅虎上不可用(它们是南非股票),因此我需要从本地目录和 .csv 文件加载它们。

我的符号文件如下所示:

head(symbols)

[1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ"....

我的交易品种价格历史记录位于单独的 csv 文件中,每个文件都包含日期列和 OHLC 列,标题仅包含 OHLC 价格。

我使用函数getSymbols.csv函数如下:

getSymbols.csv(symbols, env, dir="E:/data/CData_Files_NB/", return.class = "xts", extension="csv")

但我收到以下错误消息

loading  SHFJ .....done.
Error in `colnames<-`(`*tmp*`, value = c("SHFJ.Open", "SHFJ.High","SHFJ.Low",  : length of 'dimnames' [2] not equal to array extent

如果有人能告诉我我做错了什么,我将不胜感激。我不确定是否还有其他方法将股票价格加载到 quantstrat 包中。

最佳答案

getsymbols.csv 需要六列:开盘价、最高价、最低价、收盘价、交易量、调整后

您的数据没有“调整后”列;它有 5 个列名而不是 6 个,这会导致您看到的暗名称错误。

如果您可以修改本地数据文件,请尝试添加一个空的“已调整”列(通过在 LibreOffice 或 Excel 中打开 CSV 轻松完成)

或者尝试复制 getsymbols.csv() 函数并更改:

colnames(fr) <- paste(toupper(gsub("\\^", "", Symbols[[i]])), 
            c("Open", "High", "Low", "Close", "Volume", "Adjusted"), 
            sep = ".")

colnames(fr) <- paste(toupper(gsub("\\^", "", Symbols[[i]])), 
            c("Open", "High", "Low", "Close", "Volume"), 
            sep = ".")

为了支持您的数据。

关于r - Quantmod R 中带有 csv 的 getSymbols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779162/

相关文章:

r - 您可以为ggplot中的不同方面指定不同的几何图形吗?

r - 如何在 R 中绑定(bind)两个 xts 数据环境

java - 无法使用xslt从xml获取所需数据到csv

java - 使用 JAVA 将 CSV 转换为 XML

r - XTS数据占用太多内存空间?

r - Quantmod 振荡器

R 将数据帧中的每一列除以最后一行值

r - 如何让 Emacs ess 将查询字符串(引号内)识别为代码?

r - 使用 R 进行多线程?

Python pandas 从嵌入 Web txt 文件中的 csv 创建数据框