Maybe try a parallel back-end for ddply? Initial test seems to indicate it passes entire dataset to sockets. E.g. if dataset=2GB, 2 cores increases memory consumption to 4-6GB.

Youch!
Initial summary aggregation.
Add barplot initial.
Relabel and change scale of y-axis on barplot.