| show {methods} | R Documentation |
Display the object, by printing, plotting or whatever suits its class.
The function show exists to be specialized by methods; the
default method calls showDefault.
With library methods attached, methods for show will
usually be invoked for automatic printing (see the details).
The function showDefault allows redirection of output and
optional use of old-style print methods, but normally will not be
called directly.
show(object) showDefault(object, printTo = stdout(), oldMethods = TRUE)
object |
Any R object |
printTo |
Either a file or connection, or else
FALSE. In the latter case, the lines of text that would
have been printed are returned as the value of the call (in a
character vector with one element per line of output).
|
oldMethods |
Should old-style print methods be used for this
object? TRUE by default if called directly, but FALSE
when called from the methods package for automatic printing (to
avoid potential recursion; see the
details below).
|
The methods package overrides the base definition of
print.default to arrange for automatic printing to honor
methods for the function show. This does not quite manage to
override old-style printing methods, since the automatic printing in
the evaluator will look first for the old-style method.
If you have a class myClass and want to define a method for
show, all will be well unless there is already a function named
print.myClass. In that case, to get your method dispatched for
automatic printing, it will have to be a method for print. A
slight cheat is to override the function print.myClass yourself,
and then call that function also in the method for show
with signature "myClass".
show returns an invisible NULL.
For showDefault, if printTo is FALSE, the value
is a character vector containing the lines that would otherwise have
been printed.
showMethods prints all the methods for one or more
functions;
showMlist prints individual methods lists;
showClass prints class definitions.
Neither of the latter two normally needs to be called directly.
## following the example shown in the setMethod documentation ...
setClass("track",
representation(x="numeric", y="numeric"))
setClass("trackCurve",
representation("track", smooth = "numeric"))
t1 <- new("track", x=1:20, y=(1:20)^2)
tc1 <- new("trackCurve", t1)
setMethod("show", "track",
function(object)print(rbind(x = object@x, y=object@y))
)
## The method will now be used for automatic printing of t1
t1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
x 1 2 3 4 5 6 7 8 9 10 11 12
y 1 4 9 16 25 36 49 64 81 100 121 144
[,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
x 13 14 15 16 17 18 19 20
y 169 196 225 256 289 324 361 400
## and also for tc1, an object of a class that extends "track"
tc1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
x 1 2 3 4 5 6 7 8 9 10 11 12
y 1 4 9 16 25 36 49 64 81 100 121 144
[,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
x 13 14 15 16 17 18 19 20
y 169 196 225 256 289 324 361 400