在Quantmod R中使用csv获取符号

在Quantmod R中使用csv获取符号,r,csv,quantmod,quantstrat,R,Csv,Quantmod,Quantstrat,我正在尝试使用quantmod::getSymbols将一组符号上载到包quantstrat中 我正在加载的符号在Yahoo上不可用(它们是南非股票),因此我需要从本地目录和.csv文件中加载它们 我的符号文件如下所示: head(symbols) [1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ".... getSymbols.csv(symbols, env, dir="E:/data/CData_Files_NB/", return.class

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

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

我的符号文件如下所示:

head(symbols)

[1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ"....
getSymbols.csv(symbols, env, dir="E:/data/CData_Files_NB/", return.class = "xts", extension="csv")
我的符号价格历史记录在单独的csv文件中,每个文件都包含一个日期列和OHLC列,只有OHLC价格的标题

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

head(symbols)

[1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ"....
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
加载SHFJ…完成。

`colnamesgetsymbols.csv中的错误需要六列:打开、高、低、关闭、音量、调整

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

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

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

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

colnames(fr)尝试以下代码:

library("quantmod")
Stocks<-c("JSE:APN","JSE:BAT","JSE:CPI","JSE:DSY","JSE:NPN","JSE:DST")
getSymbols(Stocks,src="google",auto.assign=TRUE)
get("JSE:NPN")
library(“quantmod”)

StocksCan请提供SHFJ文件的前10行左右?嗨@JoshuaUlrich,谢谢。这似乎是因为我只有OHLC数据,没有Vol或调整列??谢谢@Vincent。你是对的。我添加了两个栏目的数量和调整后的价格,它似乎现在的工作。再次感谢。NMRQL:如果这回答了你的问题,请考虑点击投票按钮旁边的复选标记。谢谢Josh。道歉。