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.eich...@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.eich...@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.eich...@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@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@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@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.

Reply via email to