2008/6/10 Prof Brian Ripley <[EMAIL PROTECTED]>: > showDefault has > > clDef <- getClass(class(object)) > > Looks like the showDefault code intended > > clDef <- getClass(class(object), .force=TRUE) > > However, why are you calling show() on a non-S4 object? I cannot see any > advtanges in doing so.
I'd like *one* printing method for all objects, and the generic "show" is registered as working for ANYthing (see below) ? Or is defining one's own function currently recommended ? myPrint <- function(x, ...) { if (isS4(x)) { show(x, ...) } else { print(x, ...) } } > showMethods("show") Function: show (package methods) object="ANY" object="classRepresentation" object="derivedDefaultMethod" (inherited from: object="MethodDefinition") object="function" (inherited from: object="ANY") object="genericFunction" object="MethodDefinition" object="MethodsList" (inherited from: object="ANY") object="MethodWithNext" object="ObjectsWithPackage" object="signature" object="traceable" > showMethods("print") Function "print": <not a generic function> > getMethod("show", "ANY") Method Definition (Class "derivedDefaultMethod"): function (object) showDefault(object, FALSE) <environment: namespace:methods> Signatures: object target "ANY" defined "ANY" > On Tue, 10 Jun 2008, Laurent Gautier wrote: > >> Dear List, >> >> Calling "show" on an object of class "summary.lm" gives: >> Error in getClass(class(object)) : "summary.lm" is not a defined class >> >> Is this a miss on my end ? >> >> >>> x <- seq(1, 10) >>> show(x) >> >> [1] 1 2 3 4 5 6 7 8 9 10 >>> >>> y <- runif(10) >>> fit <- lm(y ~ x) >>> show(fit) >> >> Call: >> lm(formula = y ~ x) >> >> Coefficients: >> (Intercept) x >> 1.04938 -0.08869 >> >>> show(summary(fit)) >> >> Error in getClass(class(object)) : "summary.lm" is not a defined class >>> >>> class(summary(fit)) >> >> [1] "summary.lm" >>> >>> class((fit)) >> >> [1] "lm" >>> >>> getClass("lm") >> >> Virtual Class >> >> No Slots, prototype of class "S4" >> >> Extends: "oldClass" >> >> Known Subclasses: >> Class "mlm", directly >> Class "aov", directly >> Class "glm", directly >> Class "maov", by class "mlm", distance 2 >> Class "glm.null", by class "glm", distance 2 >>> >>> getClass("summary.lm") >> >> Error in getClass("summary.lm") : "summary.lm" is not a defined class >>> >>> sessionInfo() >> >> R version 2.7.0 Patched (2008-06-07 r45877) >> i686-pc-linux-gnu >> >> locale: >> >> LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> >> Laurent >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> > > -- > Brian D. Ripley, [EMAIL PROTECTED] > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel