2012-09-02 4 views
5

के साथ सीएसवी का उपयोग करके एकाधिक प्रतीकों को लोड करें मैं याहू से डाउनलोड करने के बजाय एक सीएसवी फ़ाइल का उपयोग करके एकाधिक प्रतीकों को लोड करने की कोशिश कर रहा हूं। मूल कोड महान काम करता है और का उपयोग करता हैक्वांटमोड

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) 

किसी को भी विचार क्यों है दूसरा कोड सेट काम नहीं करेगा? परीक्षण करने के लिए मैंने अभी याहू से सीएसवी डेटा डाउनलोड किया है और स्थानीय रूप से (विंडोज़) को सहेजा है। अगर मैं सिर्फ एक सीएसवी फ़ाइल का उपयोग करता हूं तो मुझे सबस्क्रिप्ट त्रुटियां नहीं मिलती हैं। मैं भी नीचे कोड की कोशिश की लेकिन स्क्रिप्ट में बाद में एक ही त्रुटियों मिल गया है:

setSymbolLookup(tickers=list(src="csv", dir= "C:/Users/Admiral/Downloads/")) 
getSymbols(tickers, auto.assign = T, from = '1980-01-01', env=data) 
+0

यह व्यवस्थित निवेशक कोड की तरह दिखता है। 'आरएम (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

हां, यह एसआई कोड है - मैंने आपके सुझाव की कोशिश की हालांकि और इसका कोई असर नहीं हुआ। – AdmiralF

+0

यदि आप चाहते हैं कि हमें यह पता लगाना पड़े कि क्यों Symbols.csv आपके लिए काम नहीं करता है, तो आपको हमें अपनी कुछ CSV फ़ाइलों को दिखाना होगा। या, शायद आप दिखा सकते हैं कि आपने उन्हें कैसे बनाया है। – GSee

उत्तर

2

मैं 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 कॉलम (ओएचएलसीवीए)

#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

से अधिक लचीला है हालांकि, यह इसे' आरडीए 'फाइलों के रूप में सहेजता है, सीएसवी – GSee

+0

सहायता के लिए धन्यवाद नहीं। उपर्युक्त काम करता है, लेकिन क्या मैं स्क्रिप्ट चलाने से पहले आरडीए फ़ाइल को संशोधित कर सकता हूं (यानी बंद होने वाली कीमत बदलना)? मैं याहू डेटा के बजाय संशोधित डेटा का उपयोग करने की कोशिश कर रहा हूं। – AdmiralF

+0

हां, या आप उन्हें सहेजने से पहले उन्हें संशोधित कर सकते हैं। – GSee