2012-09-02 45 views
5

我試圖使用csv文件加載多個符號,而不是從雅虎下載。原代碼的偉大工程,並使用使用csv與quantmod加載多個符號

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) 
+0

這看起來像系統的投資者代碼。運行'rm(index.xts)'然後再次嘗試你的代碼。 (http://stackoverflow.com/questions/12124683/r-index-or-index-xts-changes-the-values-of-date-of-a-time-series-why/12125165#12125165) – GSee

+0

是的,這是SI代碼 - 我嘗試了你的建議,但似乎沒有任何效果。 – AdmiralF

+0

如果你想讓我們知道爲什麼getSymbols.csv不適合你,那麼你將不得不向我們展示一些你的CSV文件。或者,也許你可以展示你是如何創建它們的。 – GSee

回答

2

如果你想使用getSymbols.csv我會使用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) 

做到這一點,你的數據有必須有日期和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 
+0

靈活得多,但它保存爲'rda'文件,而不是CSV – GSee

+0

感謝您的幫助。上述工作,但我可以在運行腳本之前修改rda文件(即更改收盤價)?我正嘗試使用修改的數據而不是雅虎數據。 – AdmiralF

+0

是的,或者你可以修改它們,然後再保存它們。 – GSee