"Prof Brian Ripley" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > On Thu, 7 Apr 2005, Steve Vejcik wrote: > > Has anyone used hex notation within R to represents integers?
> Short answer: yes. > > > as.numeric("0x1AF0") > [1] 6896 > > (which BTW is system-dependent, but one person used it as you asked). I see this works fine with R 2.0.0 on a Linux platform, but doesn't work at all under R 2.0.1 on Windows. > as.numeric("0x1AF0") [1] NA Warning message: NAs introduced by coercion Seems to me the conversion from hex to decimal should be system independent (and makes working with colors much more convenient). Why isn't this system independent now? The "prefix" on hex numbers is somewhat language dependent ("0x" or $) perhaps but I didn't think this conversion should be system dependent. I don't remember where I got this, but this hex2dec works under both Linux and Windows (and doesn't need the "0x" prefix). hex2dec <- function(hexadecimal) { hexdigits <- c(0:9, LETTERS[1:6]) hexadecimal <- toupper(hexadecimal) # treat upper/lower case the same decimal <- rep(0, length(hexadecimal)) for (i in 1:length(hexadecimal)) { digits <- match(strsplit(hexadecimal[i],"")[[1]], hexdigits) - 1 decimal[i] <- sum(digits * 16^((length(digits)-1):0)) } return(decimal) } Example: > hex2dec(c("1AF0", "FFFF")) [1] 6896 65535 "FFFF" can be interpreted as 65535 as unsigned and -1 as signed on the same system depending on context. This isn't system dependent, but rather context dependent. I suggest "as.numeric" should perform the unsigned conversion on all systems. What am I missing? efg -- Earl F. Glynn Scientific Programmer Bioinformatics Department Stowers Institute for Medical Research ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html