segment1<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
segment2<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2)
rating <-c(1,1,2,2,1,3,1,1,2,2,3,2,2,2,1,1,2,3,3,1,1,2,3,2)
data<-data.frame(segment1,segment2,rating)
df1<-aggregate(
x = data.frame(list("count"=data$rating)),
by = data.frame(list("segment1"=data$segment1, "segment2"=data$segment2, "rating"=data$rating)),
FUN = length
)
df2<-aggregate(
x = data.frame(list("count"=df1$count)),
by = data.frame(list("segment1"=df1$segment1, "segment2"=df1$segment2)),
FUN = sum
)
df2$rating1<-0
df2$rating2<-0
df2$rating3<-0
df1
segment1 segment2 rating count 1 1 1 1 6 2 1 2 1 3 3 1 1 2 7 4 1 2 2 3 5 1 1 3 2 6 1 2 3 3
df2
segment1 segment2 count rating1 rating2 rating3 1 1 1 15 0 0 0 2 1 2 9 0 0 0
I need this output for df2
segment1 segment2 count rating1 rating2 rating3 1 1 1 15 6 7 2 2 1 2 9 3 3 3