[R] simple parsing question?

William Dunlap wdunlap at tibco.com
Thu Oct 11 22:55:03 CEST 2012


But I thought the intention was to turn the string into a number, not
into another string. 

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: arun [mailto:smartpink111 at yahoo.com]
> Sent: Thursday, October 11, 2012 1:54 PM
> To: Fuchs Ira
> Cc: R help; William Dunlap
> Subject: Re: [R] simple parsing question?
> 
> HI,
> Try this:
> 
>  sprintf("%.2f",as.numeric(sub("^.* ([-+]?[[:digit:].]+)%$", "\\1", as.character(aapl[[2]]))))
> #[1] "-2.00"
> A.K.
> 
> 
> 
> 
> ----- Original Message -----
> From: Fuchs Ira <irafuchs at gmail.com>
> To: r-help at r-project.org
> Cc:
> Sent: Thursday, October 11, 2012 4:45 PM
> Subject: Re: [R] simple parsing question?
> 
> 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. 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.



More information about the R-help mailing list