[R] [effects] allEffects does not accept integer value for xlevels

Fox, John j|ox @end|ng |rom mcm@@ter@c@
Wed Sep 4 16:19:44 CEST 2019


Dear Gerrit,

Yes, that appears to be a bug in Effect() -- too bad that it wasn't discovered earlier because a new version of the package was submitted yesterday, but thank you for the bug report.

We'll fix the bug, but until then a work-around is to specify the number of levels for each numeric predictor, as in

	allEffects(mod.cowles, xlevels=list(neuroticism=4, extraversion=4))

I used 4 levels here to verify that this works correctly, since 5 is the default.

As well, although unrelated to this bug, you might take a look at predictorEffects(), which we recommend in preference to allEffects().

Best,
 John

--------------------------------------
John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
Web: socialsciences.mcmaster.ca/jfox/



> -----Original Message-----
> From: R-help [mailto:r-help-bounces using r-project.org] On Behalf Of Gerrit
> Eichner
> Sent: Wednesday, September 4, 2019 9:25 AM
> To: r-help using r-project.org
> Subject: [R] [effects] allEffects does not accept integer value for
> xlevels
> 
> Dear list,
> 
> citing from allEffects' help page (of package effects 4.1-2):
> "If xlevels=n is an integer, then each numeric predictor is represented by
> n equally spaced values rounded to 'nice' numbers."
> 
> 
> However, adapting the first example from allEffects' help page throws an
> an error:
> 
> mod.cowles <- glm(volunteer ~ sex + neuroticism*extraversion,
>                    data=Cowles, family=binomial) allEffects(mod.cowles,
> xlevels=5) Error in xlevels[[name]] : subscript out of bounds
> 
> 
> It appears to me that the cause is buried in effects:::Analyze.model
> 
> in or close to the the lines
> 
> if (is.numeric(xlevels) & length(xlevels) == 1L) {
>    levs <- xlevels
>    for (name in focal.predictors) xlevels[[name]] <- levs
>   }
> 
> 
> 
> where xlevels -- while not being a list in this case -- is subscripted by
> xlevels[[name]].
> 
> Is anyone aware of a workaround (without having to specify all numeric
> predictors of the used model explicitly in a list and giving it to xlevels
> when calling allEffects), and without having to write my own Analyze.model
> function? ;-)
> 
> 
>   Thx in advance and best regards  --  Gerrit
> 
> 
> 
> PS:  sessionInfo()
> 
> R version 3.6.1 (2019-07-05)
> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64
> (build 18362)
> 
> Matrix products: default
> 
> Random number generation:
>   RNG:     Mersenne-Twister
>   Normal:  Inversion
>   Sample:  Rounding
> 
> 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.1-2 carData_3.0-2
> 
> loaded via a namespace (and not attached):
>   [1] Rcpp_1.0.2        lattice_0.20-38   MASS_7.3-51.4     grid_3.6.1
> 
>   [5] DBI_1.0.0         nlme_3.1-141      survey_3.36
> estimability_1.3
>   [9] minqa_1.2.4       nloptr_1.2.1      Matrix_1.2-17     boot_1.3-23
> 
> [13] splines_3.6.1     lme4_1.1-21.9001  survival_2.44-1.1 compiler_3.6.1
> [17] colorspace_1.4-1  mitools_2.4       nnet_7.3-12
> 
> 
> ---------------------------------------------------------------------
> Dr. Gerrit Eichner                   Mathematical Institute, Room 212
> gerrit.eichner using math.uni-giessen.de   Justus-Liebig-University Giessen
> Tel: +49-(0)641-99-32104          Arndtstr. 2, 35392 Giessen, Germany
> http://www.uni-giessen.de/eichner
> 
> ______________________________________________
> R-help using 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