[R] More elegant magnitude method

Jonathan P Daily jdaily at usgs.gov
Tue Dec 7 20:43:35 CET 2010

I have a need to find the order of number to get a scaling parameter as a 
power of 10. I have a function that works *so far*, but it is ugly and 
probably buggy. In the interest of avoiding code-based outliers in my 
data, I thought I would ask if anyone here has a better way.

> scl <- function(x){
+ length(charToRaw(format(trunc(x), scientific = F)))-1}
> a <- 123456789
> b <- 1E15
> c <-  12.345
> scl(a)
[1] 8
> scl(b)
[1] 15
> scl(c)
[1] 1

Jonathan P. Daily
Technician - USGS Leetown Science Center
11649 Leetown Road
Kearneysville WV, 25430
(304) 724-4480
"Is the room still a room when its empty? Does the room,
 the thing itself have purpose? Or do we, what's the word... imbue it."
     - Jubal Early, Firefly

More information about the R-help mailing list