Skip to content

Help summarizing R data frame

7 messages · chris99, Ivan Calandra, Michael Rennie +4 more

#
I am trying to aggregate data in column 2 to identifiers in col 1

eg..

take this>

identifier       quantity
1                     10
1                     20
2                     30
1                     15
2                     10
3                     20

and make this>

identifier         quantity
1                    45
2                    40
3                    20


Thanks in advance for your help!
#
see ?aggregate, and ?summaryBy (in package doBy)
I think ddply (in package plyr) could also do the job

Ivan

Le 12/2/2010 17:24, chris99 a ?crit :

  
    
#
Nice thing about R is there are a number of ways to do things:
identifier quantity
1          1       10
2          1       20
3          2       30
4          1       15
5          2       10
6          3       20
identifier quantity
1          1       45
2          2       40
3          3       20
or using 'data.table'
Loading required package: data.table
identifier V1
[1,]          1 45
[2,]          2 40
[3,]          3 20
On Thu, Dec 2, 2010 at 11:24 AM, chris99 <cheakes at hotmail.com> wrote:

  
    
#
Here are some examples with tapply, aggregate, ddply:

x <- read.table("clipboard", head=TRUE)

with(x, tapply(quantity, identifier, sum))

aggregate(x$quantity, by=list(x$identifier), sum)

aggregate(quantity ~ identifier, data = x, sum)

library(plyr)
ddply(x, .(identifier), summarise, quantity=sum(quantity))

HTH
Patrick

Am 02.12.2010 17:24, schrieb chris99: