Use dcast
from the reshape2
library:
library(reshape2)
> df <- data.frame(Shop.Name=rep(c("Shop1","Shop2","Shop3"),each=3),
+ Items=rpois(9,5),
+ Product=c(rep(c("Prod1","Prod2","Prod3","Prod4"),2),"Prod5")
+ )
> df
Shop.Name Items Product
1 Shop1 6 Prod1
2 Shop1 5 Prod2
3 Shop1 6 Prod3
4 Shop2 5 Prod4
5 Shop2 6 Prod1
6 Shop2 6 Prod2
7 Shop3 4 Prod3
8 Shop3 7 Prod4
9 Shop3 5 Prod5
> dcast(df,Shop.Name ~ Product,value.var="Items",fill=0)
Shop.Name Prod1 Prod2 Prod3 Prod4 Prod5
1 Shop1 6 5 6 0 0
2 Shop2 6 6 0 5 0
3 Shop3 0 0 4 7 5