[R-SIG-Finance] Problem using Quantmod and MySQL

Mark Knecht markknecht at gmail.com
Mon Mar 30 19:02:31 CEST 2015


On Mon, Mar 30, 2015 at 9:59 AM, Joshua Ulrich <josh.m.ulrich at gmail.com> wrote:
> On Mon, Mar 30, 2015 at 11:49 AM, Mark Knecht <markknecht at gmail.com> wrote:
>> 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?
>>
> No, you shouldn't need to change anything in your code.
>
>> 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, ...)
>>
> No. Again, you shouldn't need to change your code.  The change
> required is on L614 of getSymbols.R.
>
>> Thanks,
>> Mark
>
>
>
> --
> Joshua Ulrich  |  about.me/joshuaulrich
> FOSS Trading  |  www.fosstrading.com

In that case I'll leave it to someone else to test. I don't want to
mess with non-production libraries. My skill set in this code isn't
good.

Good luck,
Mark



More information about the R-SIG-Finance mailing list