I believe you are looking for the summary.lm() function and its split= argument. Look at example(summary.aov) for several examples.