From ripley at stats.ox.ac.uk  Mon Feb 14 12:02:20 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Mon Feb 14 12:02:29 2005
Subject: [Rd] sprintf - was formatC with illegal input crashes Rgui
	(PR#7686)
In-Reply-To: <4210741A.8040606@ebi.ac.uk>
References: <20050211175824.5EB48DEE7@slim.kubism.ku.dk>
	<Pine.LNX.4.61.0502140956020.29523@gannet.stats>
	<4210741A.8040606@ebi.ac.uk>
Message-ID: <Pine.LNX.4.61.0502141052360.30303@gannet.stats>

On Mon, 14 Feb 2005, Wolfgang Huber wrote:

> Dear Prof. Ripley,
>
> Would it be possible to make sprintf accept vector arguments?
> I.e. allow expressions like
>  sprintf("%04d", 1:3)
> to produce something like what currently needs to be done via
>  sapply(1:3, function(i) sprintf("%04d",i))

I have thought about this, but it is not really clear what the right thing 
would be here with multiple arguments.  What should

sprintf(("%04d %s", 1:3, "abc")

do?  Produce a character vector of length 1 or 3?  If of length 1,
"0001 0002 0003 abc" or "0001 2 0003 abc"?

I guess the most R-like thing would be to recycle args to the length of 
the longest and then use them in parallel, but that can be done fairly 
easily by *apply.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] sprintf - was formatC with illegal input crashes Rgui (PR#7686)
Prof Brian Ripley