[R] problem with sub()
Petr Savicky
savicky at cs.cas.cz
Sun Jun 10 23:05:39 CEST 2012
On Sun, Jun 10, 2012 at 11:44:33AM -0700, t_o_b_y wrote:
> Dear R users:
>
>
>
> I want to convert some character vectors into numeric vectors.
>
> > head(price)
> [1] "15450 EUR" "7900 EUR" "13800 EUR" "3990 EUR" "4500 EUR"
> [6] "4250 EUR"
>
> >head(mileage)
> [1] "21000 km" "119000 km" "36600 km" "92000 km" "140200 km"
> [6] "90000 km"
>
> in the first example I can use:
>
> price <- sub(" EUR", "", price)
>
> to get
>
> "15450" "7900" "13800" "3990" "4500" "4250"
>
> but in the second example it doesn't work with
>
> mileage <- sub(" km, "", mileage)
Hi.
The problem is that "21000 km" does not contain a space, but
a no-break space. This may be checked by
charToRaw("21000 km") # copied from your email
[1] 32 31 30 30 30 c2 a0 6b 6d
charToRaw("21000 km") # after rewriting the space to a normal space
[1] 32 31 30 30 30 20 6b 6d
Either replace the no-break spaces by normal spaces, or use the
abbreviation "\u00a0" for no-break space.
mileage <- c("21000 km", "119000 km", "36600 km") # copied from your email
sub("\u00a0km", "", mileage)
[1] "21000" "119000" "36600"
Hope this helps.
Petr Savicky.
More information about the R-help
mailing list