2012-01-23 38 views
0

我嘗試使用下面的代碼來讀取從MySQL數據庫中的數據:使用MySQL SRC在quantmod

drv<-dbDriver("MySQL") 
user<-'xxxx' 
password<-'xxxx' 
dbname<-'test' 
con<-dbConnect(drv, user=user, password=password, dbname=dbname) 

load.packages('quantmod') 
tickers = 'Z (Dec 10)' 
setDefaults(getSymbols,verbose=T,src='MySQL') 

data <- new.env() 

data = getSymbols(tickers, from = '2010-09-01', env = data, auto.assign = T) 

產生以下錯誤:

> data = getSymbols(tickers, from = '2010-09-01', env = data, auto.assign = T) 
Error in getSymbols.MySQL(Symbols = "Z (Dec 10)", env = <environment>, : 
    At least one connection argument (‘user’ ‘password’ ‘dbname’) is not set 

我不明白爲什麼當我已經安裝了con,它不工作。

+0

我會想象在setDefaults中的參數應該讀取(...,src = con),但我不是這個包的普通用戶。 –

+0

我建議使用quantmod的方式連接到MySQL http://www.quantmod.com/documentation/getSymbols.MySQL.html,雖然我從來沒有嘗試過 – JordanBelf

回答

2

getSymbols.MySQL()會爲您建立連接。即你給它userpassworddbname,不要擔心別的。

我不知道它是否連接緩存。如果沒有,並且會影響性​​能,那麼直接使用dbi函數將數據讀入xts對象,並且不要使用這種quantmod高級功能。