Is there a function in R that could find the significant digit of a specific number? Such as for 3.1415, return '5'? Thanks in advance. [[alternative HTML version deleted]]
Is there a function in R that could find the significant digit of a specific number? Such as for 3.1415, return '5'? Thanks in advance. [[alternative HTML version deleted]]
Try this:> f <- function(x) length(gregexpr("[[:digit:]]", as.character(x))[[1]]) > f(3.14)[1] 3> f(3.1415)[1] 5> f(3.14159265)[1] 9 On Wed, Dec 16, 2009 at 1:39 PM, Xiang Wu <xiang.isu at gmail.com> wrote:> Is there a function in R that could find the significant digit of a specific > number? Such as for 3.1415, return '5'? > > Thanks in advance.
On 16/12/2009 12:39 AM, Xiang Wu wrote:> Is there a function in R that could find the significant digit of a specific > number? Such as for 3.1415, return '5'?The question may not have an unambiguous answer: I would say 1.00 and 1.00000 have a different number of significant digits, but once converted to numbers they are identical in R. Duncan Murdoch
On 16/12/2009 8:48 AM, Xiang Wu wrote:> Yes, that's true. But what I need is the original precision of a > numeric. So to me, 1.00 and 1.0000 are different.In that case, they are not numbers, but strings: and you can probably use nchar() to count characters, after stripping off any leading or trailing whitespace, commas, and decimal points. Duncan Murdoch> > > On Wed, Dec 16, 2009 at 6:31 AM, Duncan Murdoch <murdoch at stats.uwo.ca > <mailto:murdoch at stats.uwo.ca>> wrote: > > On 16/12/2009 12:39 AM, Xiang Wu wrote: > > Is there a function in R that could find the significant digit > of a specific > number? Such as for 3.1415, return '5'? > > > The question may not have an unambiguous answer: I would say 1.00 > and 1.00000 have a different number of significant digits, but once > converted to numbers they are identical in R. > > Duncan Murdoch > >