gpt4 book ai didi

r - 使用 csv 和 quantmod 加载多个符号

转载 作者:行者123 更新时间:2023-12-04 12:42:16 24 4
gpt4 key购买 nike

我正在尝试使用 csv 文件加载多个符号,而不是从 Yahoo 下载。原始代码很好用并且使用

load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data,
auto.assign = T)

但是,当我尝试使用下面的代码时,它会导致脚本稍后出现“下标越界”错误:
load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src="csv", dir= "C:/Users/Admiral/Downloads/",
env = data, auto.assign = T)

任何人都知道为什么第二个代码集不起作用?为了测试,我刚刚从雅虎下载了 csv 数据并保存在本地(Windows)。如果我只使用一个 csv 文件,我不会收到下标错误。我也试过下面的代码,但后来在脚本中遇到了同样的错误:
setSymbolLookup(tickers=list(src="csv", dir= "C:/Users/Admiral/Downloads/"))
getSymbols(tickers, auto.assign = T, from = '1980-01-01', env=data)

最佳答案

我会使用 FinancialInstrument 包来做到这一点

require('quantmod')
require('FinancialInstrument')
tickers <- c("TLT", "IWM", "GLD")
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data)

# Now save the data in a directory
tmpdir <- tempdir()
saveSymbols.common(tickers, tmpdir, env=data)

#remove the data
rm(list=tickers, pos=data)
ls(data) # see that there is nothing there
# Now load the data back from disk
getSymbols(tickers, src='FI', dir=tmpdir, env=data, split_method='common')
ls(data)

如果您想使用 getSymbols.csv ,您的数据必须具有日期和 6 列 (OHLCVA)
#write data to csv files on disk
for (i in seq_along(tickers)) {
write.zoo(get(tickers[i], pos=data), file=paste0(tmpdir, "/", tickers[i], ".csv"), sep=",")
}
rm(list=tickers, pos=data) #remove from memory
getSymbols(tickers, src='csv', dir=tmpdir)#, env=data) #load from csv files

关于r - 使用 csv 和 quantmod 加载多个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com