[R] sprintf question
Greg Snow
Greg.Snow at intermountainmail.org
Wed May 3 18:40:56 CEST 2006
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 at intermountainmail.org
(801) 408-8111
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at 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 at 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
More information about the R-help
mailing list