[R] effects & lme4: error since original data frame notfoundWASeffects: error when original data frame is missing
Gerrit Eichner
Gerrit.Eichner at math.uni-giessen.de
Wed Jan 17 15:49:49 CET 2018
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.
More information about the R-help
mailing list