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))
or even
mtcars1 <- transform(mtcars, t1=rep(3, 32), t2=rep(4, 32))
Vitalie Spinu wrote:
Dear useRs,
Here is a weird behavior of transform function:
mtcars1<-matcars
transform(mtcars1,t1=3,t2=4)
Error in data.frame(`_data`, e[!matched]) :
arguments imply differing number of rows: 32, 1
instead, this works:
mtcars1$t1<-0
transform(mtcars1,t1=3,t2=4)
also works if applied in turn:
transform(mtcars1,t1=3)
transform(mtcars1,t2=4)
'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.
Best,
Vitalie.
--
Brian D. Ripley, [EMAIL PROTECTED]
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
______________________________________________
R-help@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.