Skip to content
Prev 140608 / 398506 Next

Beginner help with retrieving frequency and transforming a matrix

Hi Sean,

is this roughly what you are looking for (please note that in the 
example data you provided there is only one level of ID given, no "S-4", 
...) ?

 > DF
     ID  Cl Co  Brd    Ind A AB AB.1 frq
1  S-3 IND  A BR_F BR_F01 1  0    0 1.0
2  S-3 IND  A BR_F BR_F01 1  0    0 1.0
3  S-3 IND  A BR_F BR_F01 1  0    0 1.0
4  S-3 IND  A BR_F BR_F01 1  0    0 1.0
5  S-3 IND  A BR_F BR_F01 1  0    0 1.0
6  S-3 IND  A BR_F BR_F01 0  1    0 0.5
7  S-3 IND  A BR_F BR_F02 0  0    1 0.0
8  S-3 IND  A BR_F BR_F02 0  1    0 0.5
9  S-3 IND  A BR_F BR_F02 1  0    0 1.0
10 S-3 IND  A BR_F BR_F02 1  0    0 1.0
11 S-3 IND  A BR_F BR_F02 0  1    0 0.5
12 S-3 IND  A BR_F BR_F02 1  0    0 1.0
 > DF2 <- aggregate(x=DF$frq, by=list(ID=DF$ID, Ind=DF$Ind), FUN=mean)
 > DF2
    ID    Ind         x
1 S-3 BR_F01 0.9166667
2 S-3 BR_F02 0.6666667
 > FinalDF <- tapply(X=DF$frq, INDEX=list(Ind=DF$Ind, ID=DF$ID), FUN=mean)
 > FinalDF
         ID
Ind            S-3
   BR_F01 0.9166667
   BR_F02 0.6666667
 >

Best,
Roland
Sean MacEachern wrote: