[R] effects & lme4: error since original data frame notfoundWASeffects: error when original data frame is missing
Fox, John
jfox at mcmaster.ca
Wed Jan 17 15:55:44 CET 2018
Dear Gerrit,
This issue is discussed in a vignette in the car package (both for functions in the car and effects packages): vignette("embedding", package="car") . The solution suggested there is the essentially the one that you used.
I hope this helps,
John
-----------------------------
John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
Web: socialsciences.mcmaster.ca/jfox/
> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Gerrit
> Eichner
> Sent: Wednesday, January 17, 2018 9:50 AM
> To: r-help at r-project.org
> Subject: Re: [R] effects & lme4: error since original data frame
> notfoundWASeffects: error when original data frame is missing
>
> Third "hi" in this regard and for the archives:
>
> I found a (maybe "dirty") workaround which at least does what I need by
> creating a copy of the required data frame in the .GlobalEnv by means of
> assign:
>
> foo <- function() {
> assign("X", sleepstudy, pos = 1)
> fm <- lmer(Reaction ~ Days + (Days | Subject), data = X)
> Effect("Days", fm)
> }
>
>
> Hth -- Gerrit
>
> ---------------------------------------------------------------------
> Dr. Gerrit Eichner Mathematical Institute, Room 212
> gerrit.eichner at math.uni-giessen.de Justus-Liebig-University Giessen
> Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany
> Fax: +49-(0)641-99-32109 http://www.uni-giessen.de/eichner
> ---------------------------------------------------------------------
>
> Am 17.01.2018 um 15:02 schrieb Gerrit Eichner:
> > Hi, again,
> >
> > I have to modify my query since my first (too simple) example doesn't
> > reflect my actual problem. Second try:
> >
> > When asking Effect() inside a function to compute an effect of an
> > lmer-fit which uses a data frame local to the body of the function, as
> > in the following example (simplifying my actual application), I get
> > the "Error in is.data.frame(data) :
> > object 'X' not found":
> >
> > > foo <- function() {
> > + X <- sleepstudy
> > + fm <- lmer(Reaction ~ Days + (Days | Subject), data = X)
> > + Effect("Days", fm)
> > + }
> >
> > > foo()
> >
> > Error in is.data.frame(data) : object 'X' not found
> >
> >
> > With lm-objects there is no problem:
> >
> > > foo2 <- function() {
> > + X <- sleepstudy
> > + fm <- lm(Reaction ~ Days, data = X)
> > + Effect("Days", fm)
> > + }
> >
> > > foo2()
> >
> > ....
> >
> > Any idea how to work around this problem?
> > Once again, thx in advance!
> >
> > Regards -- Gerrit
> >
> > PS: > sessionInfo()
> > R version 3.4.2 (2017-09-28)
> > Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8
> > x64 (build 9200)
> >
> > Matrix products: default
> >
> > locale:
> > [1]
> LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 [3]
> > LC_MONETARY=German_Germany.1252 LC_NUMERIC=C [5]
> > LC_TIME=German_Germany.1252
> >
> > attached base packages:
> > [1] stats graphics grDevices utils datasets methods base
> >
> > other attached packages:
> > [1] effects_4.0-0 carData_3.0-0 lme4_1.1-14 Matrix_1.2-11
> > car_2.1-5 [6] lattice_0.20-35
> >
> > loaded via a namespace (and not attached):
> > [1] Rcpp_0.12.13 MASS_7.3-47 grid_3.4.2
> > MatrixModels_0.4-1
> > [5] nlme_3.1-131 survey_3.32-1 SparseM_1.77 minqa_1.2.4
> > [9] nloptr_1.0.4 splines_3.4.2 tools_3.4.2
> > survival_2.41-3 [13] pbkrtest_0.4-7 yaml_2.1.14
> > parallel_3.4.2 compiler_3.4.2 [17] colorspace_1.3-2 mgcv_1.8-22
> > nnet_7.3-12 quantreg_5.33
> >
> > ---------------------------------------------------------------------
> > Dr. Gerrit Eichner Mathematical Institute, Room 212
> > gerrit.eichner at math.uni-giessen.de Justus-Liebig-University Giessen
> > Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany
> > Fax: +49-(0)641-99-32109 http://www.uni-giessen.de/eichner
> > ---------------------------------------------------------------------
> >
> > Am 17.01.2018 um 10:55 schrieb Gerrit Eichner:
> >> Hello, everyody,
> >>
> >> when asking, e.g., Effect() to compute the effects of a fitted, e.g.,
> >> linear model after having deleted the data frame from the workspace
> >> for which the model was obtained an error is reported:
> >>
> >> > myair <- airquality
> >> > fm <- lm(Ozone ~ Temp, data = myair)
> >> > rm(myair)
> >> > Effect("Temp", fm)
> >> Error in eval(model$call$data, envir) : object 'myair' not found
> >>
> >> Has anybody a better "workaround" for this than, e.g., explicitly
> >> saving the fitted model object fm together with its original
> >> environment or just the data needed frame (maybe in a list like
> >> fm.plus.origdata <- list(fm, myair = myair)) to be able to restore
> >> the original environemt (or at least the needed opriginal data
> >> frame) of the time when fm was created?
> >>
> >> Thx for any hint!
> >>
> >> Regards -- Gerrit
> >>
> >> ---------------------------------------------------------------------
> >> Dr. Gerrit Eichner Mathematical Institute, Room 212
> >> gerrit.eichner at math.uni-giessen.de Justus-Liebig-University Giessen
> >> Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany
> >> Fax: +49-(0)641-99-32109 http://www.uni-giessen.de/eichner
> >>
> >> ______________________________________________
> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide
> >> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >
> > ______________________________________________
> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list