# Re: [R] Chars as numbers

From: Josef Eschgfaeller <esg_at_felix.unife.it>
Date: Sat 28 May 2005 - 01:05:13 EST

> as.numeric

Some weeks ago one discussed on the list about how to transform a hexadecimal representation to decimal digits. Specifically one has to transform 'a' to 10 etc. In C one does this with 'a'-87, but I did not find a function for this in R. Using match on letterdigits as in the following is of course a little slow when repeated often.

Hex = function (rep16)
{rep16=tolower(rep16)
u=strsplit(rep16,'',perl=T)[]
letterdigits=c(0:9,letters)
v=sapply(u,function (x)

match(x,letterdigits)-1)
v=as.numeric(v)
Horner(v,16)}

Horner = function (v,alfa=2)
{b=v; m=length(v)
if (m>1) for (i in 2:m)
b=b*alfa+v[i]; b}

# Example:
for (x in c('0','a0','10e','f0ae'))
print(Hex(x))

```# 0
# 160
# 270
# 61614
---------------------------------------
```

Josef Eschgfäller
```--
Josef Eschgfäller
Dipartimento Matematico
Universita' di Ferrara
http://felix.unife.it

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help