On Nov 10, 2010, at 9:51 AM, Liliana Pacheco wrote:

> Hi R users
> I have a very simple function. As the return of that function I want the
> answer with 5 decimal places, but it hasn't worked with sprintf, nor with
> format, nor print. This is how I used sprintf:
> 
> cuant<-function(r,n){
> d<-seq(-1,1,by=0.001)
> .
> .
> .
> (SOME CALCULATIONS)
> .
> .
> .
> return(sprintf("%.5f",d[i-1]))
> }
> 
> d is a vector with the numbers I need, specially the last one.
> 
> how can I get the resulting number of the function with a certain amount of
> decimal places?
> 
> Thanks.
> 
> Liliana Pacheco


Presuming tat you want to be able to pass an argument that defines the number 
of decimal places:

myfunc <- function(x, nsmall) {sprintf("%.*f", nsmall, x)}

> myfunc(3.123456, 3)
[1] "3.123"

> myfunc(3.123456, 5)
[1] "3.12346"

> myfunc(3.123456, 2)
[1] "3.12"


The argument 'nsmall' is passed to sprintf() and replaces the '*' formatting 
parameter.

See  the description towards the end of the Details in ?sprintf

HTH,

Marc Schwartz

______________________________________________
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.

Reply via email to