[R] how to assign a group mean to individual cases?
Moshe Olshansky
m_olshansky at yahoo.com
Tue Nov 13 01:22:10 CET 2007
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 <klofstad at gmail.com> 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
>
> klofstad at gmail.com
> http://moya.bus.miami.edu/~cklofstad
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list