To reply to my own message, that function wasn't quite right. I think this one works better:
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=sigdigs))} else if (sigdigs==left & trunc(signum) %% 10 == 0) {out<-paste(round(signum),".",sep="")} else if (sigdigs<=left+right) {out<-format(signum,digits=sigdigs)} else {out<-sprintf(paste("%.",sigdigs-left,"f",sep=""),signum)} return(noquote(out)) } 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. Pat Carr ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel