[R] Create variables with common values for each group
    Stephan Lindner 
    lindners at umich.edu
       
    Tue Jun 20 10:42:56 CEST 2006
    
    
  
Dear all,
sorry, this is for sure really basic, but I searched a lot in the
internet, and just couldn't find a solution. 
The problem is to create new variables from a data frame which
contains both individual and group variables, such as mean age for an
household. My data frame:
df 
       hhid h.age
1  10010020    23
2  10010020    23
3  10010126    42
4  10010126    60
5  10010142    20
6  10010142    49
7  10010142    52
8  10010150    18
9  10010150    51
10 10010150    28
where hhid is the same number for each household, h.age the age for
each household member. 
I tried tapply, by(), and aggregate. The best I could get was:
by(df, df$hhid, function(subset) rep(mean(subset$h.age,na.rm=T),nrow(subset)))
df$hhid: 10010020
[1] 23 23
------------------------------------------------------------ 
df$hhid: 10010126
[1] 51 51
------------------------------------------------------------ 
df$hhid: 10010142
[1] 40.33333 40.33333 40.33333
------------------------------------------------------------ 
df$hhid: 10010150
[1] 32.33333 32.33333 32.33333
Now I principally only would have to stack up the mean values, and
this is where I'm stucked. The function aggregate works nice, and I
could loop then, but I was wondering whether there is a better way to
do that. 
My end result should look like this (assigning mean.age to the data frame):
       hhid h.age  mean.age
1  10010020    23     23.00
2  10010020    23     23.00
3  10010126    42     51.00
4  10010126    60     51.00
5  10010142    20     40.33
6  10010142    49     40.33
7  10010142    52     40.33
8  10010150    18     32.33
9  10010150    51     32.33
10 10010150    28     32.33
Cheers, and thanks a lot,
Stephan Lindner
-- 
-----------------------
Stephan Lindner, Dipl.Vw.
1512 Gilbert Ct., V-17
Ann Arbor, Michigan 48105
U.S.A.
Tel.: 001-734-272-2437
E-Mail: lindners at umich.edu
"The prevailing ideas of a time were always only the ideas of the
ruling class" -- Karl Marx
    
    
More information about the R-help
mailing list