[R] Script for conditional sums of vectors

D. Rizopoulos d.rizopoulos at erasmusmc.nl
Mon Feb 4 10:35:57 CET 2013


try this:

a <- c(1,1,1,1,1,1,2,2,2,2,2,2)
b <- c(1,1,1,2,3,4,1,1,2,2,3,4)
c <- c(400,200,300,100,500,300,200,100,500,400,200,100)
DF <- data.frame(a, b, c)

with(DF, tapply(c, list(a, b), sum))


I hope it helps.

Best,
Dimitris


On 2/4/2013 10:29 AM, Benjamin Gillespie wrote:
> Hi guys,
>
> I hope you can help me with this (probably) simple query:
>
> I have a data frame:
>
> --------------------------
>
> a=c(1,1,1,1,1,1,2,2,2,2,2,2)
> b=c(1,1,1,2,3,4,1,1,2,2,3,4)
> c=c(400,200,300,100,500,300,200,100,500,400,200,100)
>
>
> data=data.frame(a=a,b=b,c=c)
>
> --------------------------
>
> And I would like to get the following output:
>
> --------------------------
>
> 	b
> a	1	2	3	4
> 1	900	100	500	300
> 2	300	900	200	100
>
> --------------------------
>
> The values in the output represent the sum of values "c" in data frame "data", for each "a" and "b" combination.
>
> For example, where "a" = 1 and "b" = 1, the output is 400+200+300 = 900.
>
> Please would anyone be able to provide a script to create my desired output?
>
> Many thanks in advance,
> 		
> Ben Gillespie
> Research Postgraduate
>
> School of Geography
> University of Leeds
> Leeds
> LS2 9JT
>
>
> ______________________________________________
> 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.
>

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/


More information about the R-help mailing list