On 03-04-2012, at 21:02, Val wrote: > > > On Tue, Apr 3, 2012 at 2:53 PM, Berend Hasselman <b...@xs4all.nl> wrote: > > On 03-04-2012, at 20:21, Val wrote: > > > Hi All, > > > > On the same data points > > x=c(46, 125 , 36 ,193, 209, 78, 66, 242 , 297,45 ) > > > > I want to have have the following output as data frame > > > > x group group mean > > 46 1 42.3 > > 125 2 89.6 > > 36 1 42.3 > > 193 3 235.25 > > 209 3 235.25 > > 78 2 89.6 > > 66 2 89.6 > > 242 3 235.25 > > 297 3 235.25 > > 45 1 42.3 > > > > I tried the following code > > > > > > dat <- data.frame(xc=split(x, cut(x, quantile(x, prob=c(0, .333, .66 ,1)))) > > gxc <- with(dat, tapply(xc, group, mean)) > > dat$gxc <- gxce[as.character(dat$group)] > > txc=dat$gxc > > > > it did not work for me. > > > > I'm not surprised. > > In the line dat <- there are 5 opening parentheses and 4 closing )'s. > In the line dat$gxc <- you reference an object gxce. Where was it created? > > So I tried this > > > dat <- data.frame(x, group=findInterval(x, quantile(x, prob=c(0, .333, .66 > > ,1)), all.inside=TRUE)) > > dat$gmean <- ave(dat$x, as.factor(dat$group))
And the as.factor is not necessary. This will do dat$gmean <- ave(dat$x, dat$group) Berend ______________________________________________ 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.