I see valid reasons and will therefore adopt the defensive coding practice:
abc <- cbind(abc, d=abc$y - predict.lm(abc.lm, type="terms")[,1])
which works the same in both S-Plus and R and gives the answer I want.
The result of predict.lm is not a data.frame.
It is a "structure" in S-Plus and a "matrix" in R.
S-Plus gives> M <- matrix(1:4, 2, 2, dimnames=list(NULL, c('a', 'b')))
> cbind(c=5:6,d=M)
c a b
[1,] 5 1 3
[2,] 6 2 4
On spelling of the name S-Plus or S-PLUS, both are correct.
I normally write in LaTeX, so I normally use {\sc S-Plus}.
First, from the literature,
the Proprietary Notice on the copyright page of the July 2001 printed
edition says
{\sc S-Plus} 6 for Windows User's Guide
Most of the internal uses of the word in the book are also in
smallcaps {\sc S-Plus}. The outside cover does say S-PLUS. The title
page says {\sc S-Plus}.
Second, by personal discussion,
I discussed this spelling with Tim Hesterberg about a year ago.
He told me that S-Plus is an appropriate spelling.
Third, by gestalt,
"S-PLUS" looks like the "PLUS" is the most important
part---simply because
it occupies more space.
"S-Plus" looks like the "S" is the most important
part---because the "S" is
full size and the "Plus" is typographically subsidiary.
Rich