if(length(y[[i]])) y[[i]] else 0
Page 135 line 31, missing right parenthesis:
if(all(x <= 0)) return(NA)
Page 136 line 3, missing right parenthesis:
if(all(x <= 0)) NA
page 306, line 15, class name should be quoted
setClass("threeWay", "array")
Chapter 7, generally. It would have been better to be consistent in quoting the name of
a class when used as a literal, e.g., "structure"
rather
than structure
. The S-Plus code tries to handle either,
but quoted class names are the safe choice.
Page vi, last paragraph: The S-Plus website has changed to
http://www.mathsoft.com/splus/
Page vi, "versions 5.0 and higher": This does not include "Splus 2000", which would be in the 4.x line.
Page 54, the example of setMethod
in the middle of the
page has an extra right parenthesis on the third line.
page 56, the setMethod
example for function
"print"
uses "object"
as the name for the
first argument; it should be "x"
to be consistent with
the function. (The code as written works without errors, because S
will rewrite the method, but it produces a warning message that may
sound ominous.)
Page 185-6, the first sentence of section 4.9.6 should begin "When S
selects a method from a call to a generic function, ...".
(The
distinction is subtle, but in non-standard generic functions method
selection does not take place at the beginning of the call, but rather
when explicitly invoked.)
Page 343, the example in the last paragraph should be as follows
(making na.rm
the argument to callGeneric
as
was intended, and not the argument to setMethod
):
setMethod("Summary", "track",
function(x, ..., na.rm=F) callGeneric(x@y, na.rm=na.rm))
Page 447, line 9: "incompatibilites" should be "incompatibilities"
Page 103, Table 3.10, the first entry should all be on one line, and there is an extra "." at the end of the caption.
Page 111, Table 3.17, "traceMethod'` should be one column to the right.
Page 134, line 8, missing final ")" in the call to eval().
Page 185, line 17, should read 'name "..1"
refers to ...'.
Page 196, last paragraph should read "Section 7.5 deals with ...".
Page 198, line -1, should read "where e
is of class expression
"
Page 212, third sentence of section 5.2 is unclear, better would be: "Each database is essentially a lookup table of non-empty strings, each string associated with an S object."
Page 215, line -3 of section 5.2.1 should read "... same semantics as referring...".
Page 216, line 11 should read "when an attach
or
detach
call".
Page 217, line 3 in section 5.2.3, second sentence should read "All
have names beginning with database.
and completed ...".
Pages 245-7, the file name "rescale.S"
should be
"reScale.S"
, and the function rescale
should be
reScale
in several occurrences on these pages.
Page 286, second paragraph, second sentence should read "Direct inclusion is restricted to unambiguous cases."
Page 340, second paragraph, the formal arguments to function "["
include a
third argument, drop
, so that the function declaration in the
example should be
function(x, ..., drop = T) track(x@x[...], x@y[...]))
Page 341, the body of the example at the top of the page should have braces:
setReplaceMethod("[", "track",
function(x, ..., value) {
x@y[...] = as(value, "numeric")
x
})
Page 375, third line of display near the bottom of the page should be "writeLines", not "readLines".