[R] pivot table in R

Romain Francois rfrancois at mango-solutions.com
Tue Jan 29 13:17:10 CET 2008


Hi Pietro,

Depending on the actual structure you want in the output, you can use 
some of the functions in the apply family, particularly tapply, 
aggregate, or by. Something like :

R> tapply( d[["no_of_accidents" ]], d[[ "sex" ]], sum )
F M
34 83

R> aggregate( d["no_of_accidents" ], d[ "sex" ], sum )
sex no_of_accidents
1 F 34
2 M 83

R> by( d[["no_of_accidents" ]], d[[ "sex" ]], sum )
INDICES: F
[1] 34
------------------------------------------------------------
INDICES: M
[1] 83

Cheers,

Romain

-- 
Mango Solutions
data analysis that delivers

R for finance training course :: 3 days :: London (27-29/02/2008)
http://www.mango-solutions.com/services/rtraining/r_finance.html


pietro.parodi at aon.co.uk wrote:
> Hello,
>
> I'm struggling with an elementary problem with R. I have a simple data 
> frame such as this one giving the number of accidents subdivided by sex, 
> age and region.
>
> sex     age     region          no_of_accidents
>
> F       young   north           10
> F       young   south           12
> F       old     north           5
> F       old     south           7
> M       young   north           24
> M       young   south           30
> M       old     north           12
> M       old     south           17
>
> and I would like to build a pivot table, e.g. obtaining the sum of the 
> number of accidents for each sex:
>
> sex     age     region          no_of_accidents
>
> F       (any)   (any)           34
> M       (any)   (any)           83
>
> but I can't seem to obtain this result simply in R, except by embarking in 
> complicated "for" loops.
>
> I have checked the documentation on such functions as "table()" and the 
> documentation on "An introduction to R" but couldn't solve the problem. 
> Could you please help me with this?
>
> Cheers
>
> Pete
>
>
> PLEASE CONSIDER THE ENVIRONMENT BEFORE PRINTING THIS E-MAIL
>
> For Aon’s standard conditions associated with this e-mail please visit http://www.aon.com/uk/en/email-footer/aon-limited.jsp
> Aon Limited
> Registered Office: 8 Devonshire Square, London EC2M 4PL
> Registered in London No. 210725 . VAT Registration No. 480 8401 48
>
> Aon Limited is authorised and regulated by the Financial Services Authority in respect of insurance mediation activities only.
>
> 	[[alternative HTML version deleted]]
>
>



More information about the R-help mailing list