You can do the following: x <- 1:10 g <- rep(3:5,len=10) df <- data.frame(g=g,x=x) y <- aggregate(df$x,list(df$g)) z <- sapply(df$g,function(x) which(y[,1]==x)) df1 <- data.frame(df,group.mean=y[z,2])
--- Casey Klofstad <[EMAIL PROTECTED]> wrote: > I need advice on how to create a variable that is > the group mean of > another variable. > > For example, I have a variable called x for which > each row in the data > set has a value. I also have a nominal variable > called g that > indicates which of 100 different groups each row > belongs to. > > So, I want to create a new variable called w, which > is the group mean > of x for which ever group the row belongs to (as > indicated by variable > g). Ideally, I'd also like to take out each row's > value of x before > calculating the group mean assigned to that row. > > I've already tried the aggregate command. That gives > me the group > means, but does not allow me to assign them to each > row in the data > set. > > THANKS! > -- > Casey A. Klofstad > University of Miami > Department of Political Science > Coral Gables, FL > > [EMAIL PROTECTED] > http://moya.bus.miami.edu/~cklofstad > > ______________________________________________ > 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. > ______________________________________________ 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.