I generally use first approach to aggregate multiple columns in a data frame. But I noticed the result was wrong. So I split it into multiple steps as shown in approach 2, and the results are correct
Why this is happening? why the results in approach 1 are different from approach 2
`
# Approach 1
inv=aggregate(cbind(total,type1,type2,type3,type4)~pn,data=inventory,FUN=sum,na.rm=T)
# Approach 2
invv=aggregate(total~pn,data=inventory,FUN=sum,na.rm=T)
invv=merge(invv,aggregate(type1~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
invv=merge(invv,aggregate(type2~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
invv=merge(invv,aggregate(type3~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
invv=merge(invv,aggregate(type4~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
`
Tried to aggregate different types of inventories from a data frame by part number, but the result (approach 1) was wrong. However, when it was done in multiple steps (approach 2), the result was correct.