Re: [R] sprintf question

From: Greg Snow <Greg.Snow_at_intermountainmail.org>
Date: Thu 04 May 2006 - 02:40:56 EST


You could finagle things with do.call (maybe right your own function that does this if you will use it often). Here is your example:

> v <- c(1, 2, -1.197114, 0.1596687)
> iv <- c(3, 1, 2, 4)
> tmp <- c(list("%9.2f\t%d\t%d\t%8.3f"),as.list(v[iv]))
> do.call('sprintf',tmp)
[1] " -1.20\t1\t2\t 0.160"

Hope this helps,

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow@intermountainmail.org
(801) 408-8111
 

-----Original Message-----
From: r-help-bounces@stat.math.ethz.ch
[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Paul Roebuck
Sent: Wednesday, May 03, 2006 10:32 AM
To: R Help Mailing List
Subject: [R] sprintf question

How would one go about getting sprintf to use the values of a vector
without having to specify each argument individually?


> v <- c(1, 2, -1.197114, 0.1596687)
> iv <- c(3, 1, 2, 4)
> sprintf("%9.2f\t%d\t%d\t%8.3f", v[3], v[1], v[2], v[4])
[1] " -1.20\t1\t2\t 0.160" Essentially, desired effect would be something like:
> sprintf("%9.2f\t%d\t%d\t%8.3f", v[iv]) # wish it worked
---------------------------------------------------------- SIGSIG -- signature too long (core dumped) ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Thu May 04 02:56:05 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 04 May 2006 - 04:09:58 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.