[R] trouble with summary tables with several variables using aggregate function

Marc Schwartz marc_schwartz at me.com
Thu May 19 20:14:57 CEST 2011


Another approach, using aggregate(), presuming that the data is in a data frame called 'DF':

> with(DF, aggregate(Var3, list(Var1 = Var1, Var2 = Var2), table))
  Var1 Var2 x.D x.I
1   S1   T1   2   2
2   S2   T1   2   2
3   S1   T2   2   2
4   S2   T2   0   4


HTH,

Marc Schwartz


On May 19, 2011, at 1:10 PM, Phil Spector wrote:

> Luma -
>   If I understand you correctly, I think the easiest way
> to get what you want is to use the reshape function on
> the output from aggregate:
> 
>> reshape(Count.Cells,idvar=c('Var1','Var2'),timevar='Var3',direction='wide')
>  Var1 Var2 dummy.D dummy.I
> 1   S1   T1       2       2
> 2   S2   T1       2       2
> 3   S1   T2       2       2
> 7   S2   T2      NA       4
> 
> 					- Phil Spector
> 					 Statistical Computing Facility
> 					 Department of Statistics
> 					 UC Berkeley
> 					 spector at stat.berkeley.edu
> 
> 
> 
> On Thu, 19 May 2011, Luma R wrote:
> 
>> Dear all,
>> 
>> I am having trouble creating summary tables using aggregate function.
>> 
>> given the following table:
>> 
>> 
>> Var1   Var2    Var3   dummy
>> S1       T1         I         1
>> S1       T1         I         1
>> S1       T1         D        1
>> S1       T1         D        1
>> S1       T2         I         1
>> S1       T2         I         1
>> S1       T2         D        1
>> S1       T2         D        1
>> S2       T1         I         1
>> S2       T1         I         1
>> S2       T1         D        1
>> S2       T1         D        1
>> S2       T2         I         1
>> S2       T2         I         1
>> S2       T2         I        1
>> S2       T2         I        1
>> 
>> 
>> I want to create a summary table that shows for each category of Var1,
>> Var2, the number of cells that are Var3=D and Var3-I :
>> 
>>        Var1 Var2  Var3(D)   Var3(I)
>>        S1     T1    2              2
>>        S1     T2    2              2
>>        S2     T1    2              2
>>        S2     T2    0              4
>> 
>> 
>> 
>> However, if I do: Count.Cells=  aggregate(dummy~ Var1+Var2+Var3, FUN='sum')
>> , I get:
>> 
>>          Var1 Var2  Var3 Count of Resp
>>           S1     T1     D        2
>>           S1     T1     I          2
>>           S1     T2     D        2
>>           S1     T2     I         2
>>           S2     T1     D       2
>>           S2      T1    I        2
>>           S2     T2     I        4
>> 
>> 
>> Is there a way to get different columns for each Var3 level?
>> 
>> 
>> Thank you for any help you can give!



More information about the R-help mailing list