[R] sprintf does not print

Alaios alaios at yahoo.com
Wed Feb 16 12:02:18 CET 2011


Thank you very much both.
You made it clear :)

Regards
Alex

--- On Wed, 2/16/11, ted.harding at wlandres.net <ted.harding at wlandres.net> wrote:

> From: ted.harding at wlandres.net <ted.harding at wlandres.net>
> Subject: Re: [R] sprintf does not print
> To: "R help" <r-help at r-project.org>
> Cc: "Alaios" <alaios at yahoo.com>
> Date: Wednesday, February 16, 2011, 10:56 AM
> To expand on Mario's response below:
> 
> sprintf() is a function which returns a value which
> is a [vector of] character string[s]. The "print" in its
> name is there because its name is the same as the C
> function
> sprintf whose purpose is to create a character string
> ("s")
> formatted ("f") according to the format argument.
> sprintf()
> does not perform the operation of "printing" its value to
> the screen -- never!
> 
> However, on may get the impression that it does so if one
> uses it "stand-alone" in a command line:
> 
>   sprintf("%.4f",pi)
>   # [1] "3.1416"
> 
> but this is because *anything* which has a value, when
> entered
> stand-alone in a command line, will result in the value
> being
> "printed" to the screen. It is R which does this, not the
> "anything".
> 
>   X <- sprintf("%.4f",pi)  ## Note that this
> does not print either
>   X
>   # [1] "3.1416"
> 
> Inside a loop, or inside a function, you need to wrap the
> "sprintf(...)" inside a cat() or print() statement; when
> something which has a value is named in such a context,
> the
> "printing to screen" is suppressed. It is R which
> suppresses it.
> 
>   for(i in (1:2)){
>     X <- sprintf("%.4f",pi)
>     X
>   }
> 
> produces nothing on screen. However,
> 
>   for(i in (1:2)){
>     X <- sprintf("%.4f",pi)
>     print(X)
>   }
>   # [1] "3.1416"
>   # [1] "3.1416"
> 
> See ?sprintf for more detail on its relation with the C
> function
> of the same name.
> 
> Hoping this helps,
> Ted.
> 
> On 16-Feb-11 10:25:31, Mario Valle wrote:
> > Use
> > cat(sprintf('I did the the %d,%d \n',k,l))
> > The functions do not print in non interactive mode
> > Hope it helps
> >               
>                
>   mario
> > On 16-Feb-11 11:15, Alaios wrote:
> >> Dear all I have an sprintf inside a loop to track
> changes in
> >> variable's value.
> >>
> >> This sprintf statement works if I copy and paste
> it inside R
> >> sprintf('I did the the %d,%d \n',k,l)
> >>
> >> but when this is inside a loop I get no message.
> >>
> >> listcounter<-1
> >> for (k in c(1:mmax)){ #
> >>    for (l in c(1:nmax)){
> >>
> >>     
> lst[[listcounter]]<-fun(estimatedsr)
> >>      listcounter<-listcounter+1
> >>      sprintf('I did the the %d,%d
> \n',k,l)
> >>    }
> >> }
> >>
> >>
> >> When I paste the code above I never get any
> message printed. I know
> >> that the loop works. When I kill the execution of
> the loop the
> >> listcounter variable has value different from the
> initial one.
> >>
> >> What might be the solution to that strange
> problem?
> >>
> >> Best Regards
> >> Alex
> >>
> >> ______________________________________________
> >> R-help at 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.
> > 
> > -- 
> > Ing. Mario Valle
> > Data Analysis and Visualization Group   
>         |
> > http://www.cscs.ch/~mvalle
> > Swiss National Supercomputing Centre (CSCS) 
>     | Tel:  +41 (91)
> > 610.82.60
> > v. Cantonale Galleria 2, 6928 Manno, Switzerland |
> Fax:  +41 (91)
> > 610.82.82
> > 
> > ______________________________________________
> > R-help at 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.
> 
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <ted.harding at wlandres.net>
> Fax-to-email: +44 (0)870 094 0861
> Date: 16-Feb-11           
>                
>            Time:
> 10:56:35
> ------------------------------ XFMail
> ------------------------------
> 






More information about the R-help mailing list