Hi vec<-runif(100) fac<-factor(sample(letters[1:4],100, rep=T)) tap<-tapply(vec, fac, mean) new.vec<-tap[fac] lm1 <- lm(vec ~ fac) all.equal(as.numeric(predict(lm1)),as.numeric(new.vec)) [1] TRUE
HTH Petr On 14 Apr 2006 at 17:46, Murray Jorgensen wrote: Date sent: Fri, 14 Apr 2006 17:46:12 +1200 From: Murray Jorgensen <[EMAIL PROTECTED]> To: [email protected] Subject: [R] vector-factor operation > I found myself wanting to average a vector [vec] within each level of > a factor [Fac], returning a vector of the same length as vec. After a > while I realised that > > lm1 <- lm(vec ~ Fac) > fitted(lm1) > > did what I want. > > But there must be another way to do this, and it would be good to be > able to apply other functions than mean() in this way. > > Cheers, Murray > -- > Dr Murray Jorgensen http://www.stats.waikato.ac.nz/Staff/maj.html > Department of Statistics, University of Waikato, Hamilton, New Zealand > Email: [EMAIL PROTECTED] Fax 7 838 4155 > Phone +64 7 838 4773 wk Home +64 7 825 0441 Mobile 021 1395 862 > > ______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html Petr Pikal [EMAIL PROTECTED] ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
