[R-SIG-Finance] Problem using Quantmod and MySQL
Mark Knecht
markknecht at gmail.com
Mon Mar 30 18:49:51 CEST 2015
On Mon, Mar 30, 2015 at 9:25 AM, Joshua Ulrich <josh.m.ulrich at gmail.com> wrote:
> On Sun, Mar 29, 2015 at 5:37 PM, Joshua Ulrich <josh.m.ulrich at gmail.com> wrote:
>> On Sun, Mar 29, 2015 at 1:50 PM, Ueli Hofstetter
>> <uelihofstetter at gmail.com> wrote:
>>> I have some problems loading symbols from an mysql db using getSymbols.
>>>
>>> Instead of repeating the issue, here is a link to the description on
>>> stackoverflow
>>>
>>> http://stackoverflow.com/questions/29333330/quantmod-error-loading-symbols-from-mysql-db
>>>
>>> Any help is greatly appreciated
>>>
>> The "character" method for dbConnect was removed in the 0.10 release
>> of RMySQL. I'm not sure whether or not this was intentional. It was
>> not mentioned in the release notes.
>>
> It was removed intentionally. I do not have a MySQL database
> available for testing, so I would really appreciate some help from
> those who use this functionality. Can someone please try this
> suggested edit:
> https://github.com/rstats-db/RMySQL/issues/62#issuecomment-87692704
>
> And provide feedback at: https://github.com/joshuaulrich/quantmod/issues/45
>
> Thanks!
> Josh
>
>
> --
> Joshua Ulrich | about.me/joshuaulrich
> FOSS Trading | www.fosstrading.com
>
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.
I'm happy to try it out but a little confused as to all the locations
I need to edit. Help me clear this up and I'll try it out immediately.
The failure is coming when I'm trying to get the data using the following code:
> if (DownloadNewData){
+ if (!UseMySQL){
+ for (i in 1:length(TestSym)){
+ print(paste("From ",SymbolSrc," -- ",TestSym[i]))
+ getSymbolsCont(TestSym[i], from = DataStart, to = DataEnd,
adjust = MyAdjust, src=SymbolSrc)
+ }
+ } else {
+ for (i in 1:length(TestSym)){
+ print(paste("From MySQL -- ",TestSym[i]))
+ # getSymbols(TestSym[i], src="MySQL")
+ getSymbols(TestSym[i], src="MySQL", user="mark",
password="MyTempPassword", dbname=dbName)
+ assign(TestSym[i], get(TestSym[i])[paste0(DataStart,"/",DataEnd)])
+ }
+ dbDisconnect(dbc)
+ }
+ }
[1] "From MySQL -- SPY"
Show Traceback
Rerun with Debug
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘dbConnect’ for
signature ‘"character"’
Am I correct that the suggestion is to edit two lines?
First, I use
library(RMySQL)
Is the first edit to change this to
requireNamespace("RMySQL", quietly = TRUE)
or do I add this to my code somewhere and keep the library command?
Later in my code I have:
if (UseMySQL){
if (MyAdjust) { dbName = paste0(dbName, "Adjust")}
dbc = dbConnect(MySQL(), dbname=dbName)
# setDefaults(getSymbols.MySQL, user="mark",
password="MyTempPassword", dbname=dbName)
}
This would be where the second edit goes?
dbConnect("MySQL", ...) to dbConnect(RMySQL::MySQL, ...)
Thanks,
Mark
More information about the R-SIG-Finance
mailing list