Re: [Rd] Possible bug in termplot function (stats package) ?

From: peter dalgaard <pdalgd_at_gmail.com>
Date: Mon, 06 Jun 2011 18:29:36 +0200

On Jun 6, 2011, at 17:15 , Joris Meys wrote:

> Hi all,
>
> I noticed some very odd behaviour in the termplot function of the
> stats package due to the following lines :
>
> 18. if (is.null(data))
> 19. data <- eval(model$call$data, envir)
>
> This one will look in the global environment, and renders the two
> lines after this
>
> 20. if (is.null(data))
> 21. data <- mf
>
> completely obsolete. If nothing is found, an error is returned. If
> anything is found, data won't be NULL, so line 20, when reached, will
> always return FALSE. Can it be that lines 18 and 19 should be removed
> from the function?

I think this is a false assumption. What keeps model$call$data from being NULL?

No comments on the remainder, except that it wouldn't be the first time a wrapper function got into trouble with environments and modelling functions...

>
> This gives especially problems when called from other plot functions
> on models made with wrapper functions. One example :
>
> Data <- data.frame(
> x1=rnorm(100),
> x2=rnorm(100,3,2),
> y=rnorm(100)
> )
> form <- as.formula(y~x1+x2)
> test <- lm(form, data=Data)
> termplot(test)
>
> wrapper <- function(ff,x){
> tt <- lm(ff,data=x)
> }
> test2 <- wrapper(form,Data)
> termplot(test2)
>
> For the non-smooth terms, termplot is called. In the first example,
> this works perfectly well. In the second example, it either returns "x
> not found" (when there is no x variable in the global) or "x2 not
> found" when there is an x variable.
>
> If both lines mentioned earlier are erased from the function, it works
> as expected in this example code. Using the model frame seems the
> logic choice here, I have no clue why one would want to look in the
> global environment for the data related to a model.
>
> Cheers
> Joris
>
> --
> Joris Meys
> Statistical consultant
>
> Ghent University
> Faculty of Bioscience Engineering
> Department of Applied mathematics, biometrics and process control
>
> tel : +32 9 264 59 87
> Joris.Meys_at_Ugent.be
> -------------------------------
> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes_at_cbs.dk  Priv: PDalgd_at_gmail.com

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 06 Jun 2011 - 16:34:39 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 06 Jun 2011 - 19:20:16 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive