Skip to content

Extracting numeric part from a string

7 messages · Christofer Bogaso, Ismail SEZEN, Marc Schwartz +1 more

#
Hi again,

I am struggling to extract the number part from below string :

"\"cm_ffm\":\"563.77\""

Basically, I need to extract 563.77 from above. The underlying number
can be a whole number, and there could be comma separator as well.

So far I tried below :
[1] "563"
However, above code is only extracting the integer part.

Could you please help how to achieve that. Thanks,
#
library(readr)
parse_number('"cm_ffm":"563.77?')
#
Using ?gsub:

X <- "\"cm_ffm\":\"563.77\""
[1] "563.77"

or
[1] "563.77"


Basically, remove any characters that are not digits or the decimal point, presuming your pattern is consistent across your data.

Regards,

Marc Schwartz
#
Sorry, forgot that you indicated that there could be a comma:

X <- "\"cm_ffm\":\"1,563.77\""
[1] "1,563.77"
[1] "1,563.77"


Regards,

Marc
#
... Or if you just want to stick with basic regex's without extra packages:
[1] "563.77"

Cheers,
Bert
On Wed, Aug 2, 2017 at 5:16 PM, Ismail SEZEN <sezenismail at gmail.com> wrote:
#
... and Marc's solution is **much** better than mine.

-- Bert
Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Wed, Aug 2, 2017 at 5:59 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote:
#
Thanks Bert.

I should probably also explicitly mention that if Christofer wants to ultimately coerce the numeric components of the strings to numeric data types for subsequent mathematical operations, you will need to strip the commas anyway. 

In that case, my first response, where I did not include the comma character in the regex may be preferred.

Regards,

Marc