Yes, in my case it would be re-learning regular expressions. Unlike riding a bicycle, this is something I have managed to forget (except for the simplest cases). I even have an old O'reilly book on the subject which I can dust off. I was thinking (hoping?) that quantmod had functions to manipulate the information returned by Yahoo but I guess that is not the case. Anyway thanks to everyone's help, I now know how to proceed. Best, Ira
On Oct 11, 2012, at 4:59 PM, Bert Gunter wrote:
Just a comment. On Thu, Oct 11, 2012 at 1:45 PM, Fuchs Ira <irafuchs at gmail.com> wrote:
I'm glad I asked as I would have thought that this was a common requirement and quantmod itself or a simple R function would have done the conversion.
**You saved me from having to master R's sub function.** Actually, it's not "R's sub function," it's regular expressions, which are independent of R and used in many other languages for text processing. They also have an interesting history in computer science. You might wish to have a look at Wikipedia's or other source's page on regular expressions to get some background. Depending on the nature of your work, you may also wish to reconsider your avoidance of learning the regular expression syntax, which is, however, a chore. Best, Bert One remaining thing?when I use your snippet for AAPL, I get:
aapl=getQuote("aapl",what=yahooQF(c("Change Percent (Real-time)")))
as.numeric(sub("^.* ([-+]?[[:digit:].]+)%$", "\\1", as.character(aapl[[2]])))
[1] -2 not the -2.00 that you got. Do I have a setting that is causing it to not show the significant digits? Thanks. On Oct 11, 2012, at 4:27 PM, William Dunlap wrote:
qs <- getQuote(c("aapl","tibx","gm","badWolf"),what=yahooQF(c("Change Percent (Real-time)")))
qs
Trade Time %Change (RT) aapl 2012-10-11 04:00:00 N/A - -2.00% tibx 2012-10-11 04:00:00 N/A - -0.85% gm 2012-10-11 04:00:00 N/A - +1.77% badWolf <NA> N/A - 0.00%
as.numeric(sub("^.* ([-+]?[[:digit:].]+)%$", "\\1", as.character(qs[[2]])))
[1] -2.00 -0.85 1.77 0.00 The "\\1" in the replacement argument to sub() means the text matched by the first parenthesized subpattern in the pattern argument. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
-----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Fuchs Ira Sent: Thursday, October 11, 2012 12:58 PM To: r-help at r-project.org Subject: [R] simple parsing question? I am using the getQuote function in the Quantmod package to retrieve the % change for a stock as follows:
getQuote("aapl",what=yahooQF(c("Change Percent (Real-time)")))
Trade Time %Change (RT) aapl 2012-10-11 03:41:00 N/A - -1.67% How can I extract the numeric "change %" which is being returned as a factor so that I can use it in other calculations? Thanks.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm