Если x - это кадр данных с вашими данными, то следующее будет делать то, что вы хотите:
x
require(reshape) recast(x, Category ~ ., fun.aggregate=sum)