Jonathan,
  I'd just return the integer part of the common log:

floor(log10(x))

Dave


From:
Jonathan P Daily <jdaily@usgs.gov>
To:
r-help@r-project.org
Date:
12/07/2010 01:44 PM
Subject:
[R] More elegant magnitude method
Sent by:
r-help-bounces@r-project.org



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

Thanks
--------------------------------------
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

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



	[[alternative HTML version deleted]]

