[R] Bug in "transform"?
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Dec 2 17:37:44 CET 2008
As the help page says
If some of the values are not vectors of the appropriate length,
you deserve whatever you get!
So you can use
mtcars1 <- mtcars
mtcars1[c("t1", "t2")] <- cbind(rep(3,32), rep(4, 32))
mtcars1 <- transform(mtcars, t1=rep(3, 32), t2=rep(4, 32))
Vitalie Spinu wrote:
> Dear useRs,
> Here is a weird behavior of transform function:
> Error in data.frame(`_data`, e[!matched]) :
> arguments imply differing number of rows: 32, 1
> instead, this works:
> also works if applied in turn:
'works'? Only if you assign the result.
> I often need to use this for creating new variables in data frame from
> those already present.
> Sorely needed!!
Just learn to use indexing: transform() is just syntactic sugar that you
are not making use of.
Brian D. Ripley, ripley at 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
More information about the R-help