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