car data set

library(reshape2)
## Warning: package 'reshape2' was built under R version 3.1.2
mtcars$carname<-rownames(mtcars)
carMelt<-melt(mtcars, id=c("carname", "gear", "cyl"), measure.vars=c("mpg", "hp"))
head(carMelt, n=3)
##         carname gear cyl variable value
## 1     Mazda RX4    4   6      mpg  21.0
## 2 Mazda RX4 Wag    4   6      mpg  21.0
## 3    Datsun 710    4   4      mpg  22.8

casting

cylData<-dcast(carMelt, cyl~variable)
## Aggregation function missing: defaulting to length
cylData
##   cyl mpg hp
## 1   4  11 11
## 2   6   7  7
## 3   8  14 14
cylData<-dcast(carMelt, cyl~variable,mean);cylData
##   cyl      mpg        hp
## 1   4 26.66364  82.63636
## 2   6 19.74286 122.28571
## 3   8 15.10000 209.21429

averaging

head(InsectSprays)
##   count spray
## 1    10     A
## 2     7     A
## 3    20     A
## 4    14     A
## 5    14     A
## 6    12     A
tapply(InsectSprays$count, InsectSprays$spray,sum)
##   A   B   C   D   E   F 
## 174 184  25  59  42 200
spIns= split(InsectSprays$count, InsectSprays$spray)
spIns
## $A
##  [1] 10  7 20 14 14 12 10 23 17 20 14 13
## 
## $B
##  [1] 11 17 21 11 16 14 17 17 19 21  7 13
## 
## $C
##  [1] 0 1 7 2 3 1 2 1 3 0 1 4
## 
## $D
##  [1]  3  5 12  6  4  3  5  5  5  5  2  4
## 
## $E
##  [1] 3 5 3 5 3 6 1 1 3 2 6 4
## 
## $F
##  [1] 11  9 15 22 15 16 13 10 26 26 24 13
sprCount = lapply(spIns, sum); sprCount
## $A
## [1] 174
## 
## $B
## [1] 184
## 
## $C
## [1] 25
## 
## $D
## [1] 59
## 
## $E
## [1] 42
## 
## $F
## [1] 200
unlist(sprCount)
##   A   B   C   D   E   F 
## 174 184  25  59  42 200

plyr

library(plyr)
ddply(InsectSprays, .(spray), summarize, sum=sum(count))
##   spray sum
## 1     A 174
## 2     B 184
## 3     C  25
## 4     D  59
## 5     E  42
## 6     F 200