From Scott.Wilkinson at csiro.au  Fri Jun 13 06:10:17 2008
From: Scott.Wilkinson at csiro.au (Scott.Wilkinson at csiro.au)
Date: Fri, 13 Jun 2008 06:10:17 +0200 (CEST)
Subject: [Rd] significant digits (PR#9682)
Message-ID: <20080613041018.A24062834169@mail.pubhealth.ku.dk>

Thanks Patrick, your function is a neat work-around to include trailing
zeroes when specifying significant digits.
It worked better with this modification to the "format" arguments: =20
  else if (sigdigs<=3Dleft+right)
{out<-format(signum,nsmall=3Dsigdigs-left)}

Agree would be nice to include this in signif()
Regards, Scott.

> -----Original Message-----
> From: patcarr at gmail.com [mailto:patcarr at gmail.com] On Behalf=20
> Of Patrick Carr
> Sent: Tuesday, 3 June 2008 11:28 AM
> To: r-bugs at r-project.org
> Cc: Wilkinson, Scott (CLW, Townsville)
> Subject: Re: significant digits (PR#9682)
>=20
> To reply to my own message, that function wasn't quite right. I think
> this one works better:
>=20
> signif.string <- function(signum,sigdigs){
>   test <- abs(signum)
>   left <- nchar(trunc(test))
>   right <- nchar(test)-left-1
>   if (test<1) {left<-left-1}
>   if (right<0) {right<-0}
>   if (sigdigs<left) =
{out<-as.character(signif(signum,digits=3Dsigdigs))}
>   else if (sigdigs=3D=3Dleft & trunc(signum) %% 10 =3D=3D 0)
> {out<-paste(round(signum),".",sep=3D"")}
>   else if (sigdigs<=3Dleft+right) =
{out<-format(signum,digits=3Dsigdigs)}
>   else {out<-sprintf(paste("%.",sigdigs-left,"f",sep=3D""),signum)}
>   return(noquote(out))
> }
>=20
> But it should still have error checking and vector capability, yadda
> yadda. Also, I forgot what year it was, so sorry, Scott, for spamming
> you with something you're hopefully not still stuck on.
>=20
> Pat Carr
>=20



[Rd] significant digits (PR#9682)
Scott.Wilkinson at csiro.au