I have a column in a dataframe as follows:
COL1
$54,345
$65,231
$76,234
How do I convert it into this:
COL1
54345
65231
76234
The way I tried it at first was:
df$COL1<-as.numeric(as.character(df$COL1))
That didn't work because it said NA's were introduced.
Then I tried it like this:
df$COL1<-as.numeric(gsub("\\$","",as.character(df$COL1)))
And the same this happened.
Any ideas?
We could use
parse_number
fromreadr
package which removes any non-numeric characters.The reason why the
gsub
didn't work was there was,
in the column, which is still non-numeric. So when convert to 'numeric' withas.numeric
, all the non-numeric elements are converted toNA
. So, we need to remove both,
and$
to make it work.We match the
$
and,
inside the square brackets ([$,]
) so that it will be considered as that character ($
left alone has special meaning i.e. it signifies the end of the string.) and replace it with''
.Or we can escape (
\\
) the character ($
) to match it and replace by''
.