[Lme4-commits] r1707 - in www: . misc
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Apr 18 20:59:21 CEST 2012
Author: bbolker
Date: 2012-04-18 20:59:21 +0200 (Wed, 18 Apr 2012)
New Revision: 1707
Added:
www/misc/
www/misc/lme4_conversion.html
www/misc/lme4_conversion.md
Log:
conversion/transition guide, first draft (markdown format, plus pandoc-converted HTML)
Added: www/misc/lme4_conversion.html
===================================================================
--- www/misc/lme4_conversion.html (rev 0)
+++ www/misc/lme4_conversion.html 2012-04-18 18:59:21 UTC (rev 1707)
@@ -0,0 +1,167 @@
+<div id="lme4-updating-guide"
+><h1
+ >lme4 updating guide</h1
+ ><div id="for-package-writers:"
+ ><h2
+ >For package writers:</h2
+ ><ul
+ ><li
+ ><code
+ >lme4</code
+ >-old and <code
+ >lme4.0</code
+ > produces <code
+ >mer</code
+ > objects, <code
+ >lme4</code
+ >-new produces <code
+ >merMod</code
+ > objects</li
+ ><li
+ >you can distinguish <code
+ >lme4</code
+ >-old from <code
+ >lme4</code
+ >-new via package version; the last old-style version of <code
+ >lme4</code
+ > on CRAN is 0.999375-42, so anything after that is <code
+ >lme4</code
+ >-new (the current version on <a href="http://lme4.r-forge.r-project.org/repos"
+ ><code
+ >http://lme4.r-forge.r-project.org/repos</code
+ ></a
+ > is 0.999902344-0)</li
+ ><li
+ >so you can test e.g. if <code
+ >packageVersion("lme4")<="0.999375-43"</code
+ > (yes, you do want the quotation marks; package versions are weird objects in R)</li
+ ><li
+ ><code
+ >getME(.,.)</code
+ > should often get the components you want</li
+ ><li
+ ><code
+ >lme4</code
+ > now uses S3 rather than S4 methods in many places. That makes some things easier ...</li
+ ></ul
+ ><div id="things-that-wont-work:"
+ ><h3
+ >Things that won't work:</h3
+ ><ul
+ ><li
+ >direct extraction of slots via <code
+ >@</code
+ > (use <code
+ >getME()</code
+ > instead)</li
+ ><li
+ >methods that depend on <code
+ >lme4</code
+ > producing objects of class <code
+ >mer</code
+ > (write new methods for class <code
+ >merMod</code
+ >; <code
+ >lme4</code
+ > now has <code
+ >isLMM()</code
+ >, <code
+ >isGLMM()</code
+ >, <code
+ >isNLMM()</code
+ > that should help you distinguish different types of model if you need to)</li
+ ><li
+ >the <code
+ >method</code
+ > argument is no longer used in <code
+ >glmer</code
+ > (<code
+ >nAGQ=1</code
+ > vs <code
+ >nAGQ>1</code
+ > specifies whether to use Laplace or</li
+ ><li
+ ><code
+ >expandSlash</code
+ > no longer exists (<em
+ >although it does exist within the <code
+ >findbars</code
+ > function: could be reconstituted??</em
+ >)</li
+ ><li
+ >because S4 methods are used less, and (S4) <em
+ >reference</em
+ > classes are used, considerably fewer methods are exported, but they are generally available as reference class method "slots"</li
+ ></ul
+ ></div
+ ></div
+ ><div id="for-package-writers-and-regular-people:"
+ ><h2
+ >For package writers and regular people:</h2
+ ><ul
+ ><li
+ >accessor functions and methods should all work the same (slight differences in printing format for <code
+ >VarCorr</code
+ >)</li
+ ><li
+ >there is now an <code
+ >optimizer</code
+ > argument. <code
+ >"Nelder_Mead"</code
+ > is the default, other options are <code
+ >"bobyqa"</code
+ > (an alternative derivative-free method); to use the <code
+ >nlminb</code
+ > optimizer as in the old version of lme4, you can use <code
+ >optimizer="optimx"</code
+ > with <code
+ >control=list(method="nlminb")</code
+ > (you will need the <code
+ >optimx</code
+ > package to be installed and loaded)</li
+ ><li
+ >(residuals)</li
+ ></ul
+ ></div
+ ><div id="new-features"
+ ><h2
+ >New features</h2
+ ><ul
+ ><li
+ ><code
+ >bootMer</code
+ ></li
+ ><li
+ >profiling</li
+ ><li
+ ><code
+ >nAGQ=0</code
+ ></li
+ ><li
+ >choice of optimizer, including user-specified</li
+ ></ul
+ ></div
+ ><div id="user-visible-changes"
+ ><h2
+ >User-visible changes</h2
+ ><ul
+ ><li
+ ><code
+ >glmer</code
+ > not automatically called when <code
+ >family</code
+ > is specified in <code
+ >lmer</code
+ >?</li
+ ><li
+ >methods such as <code
+ >fixef</code
+ > no longer conflict between <code
+ >nlme</code
+ > and <code
+ >lme4</code
+ ></li
+ ></ul
+ ></div
+ ></div
+>
Added: www/misc/lme4_conversion.md
===================================================================
--- www/misc/lme4_conversion.md (rev 0)
+++ www/misc/lme4_conversion.md 2012-04-18 18:59:21 UTC (rev 1707)
@@ -0,0 +1,31 @@
+# lme4 updating guide
+
+## For package writers:
+
+* `lme4`-old and `lme4.0` produces `mer` objects, `lme4`-new produces `merMod` objects
+* you can distinguish `lme4`-old from `lme4`-new via package version; the last old-style version of `lme4` on CRAN is 0.999375-42, so anything after that is `lme4`-new (the current version on <http://lme4.r-forge.r-project.org/repos> is 0.999902344-0)
+* so you can test e.g. if `packageVersion("lme4")<="0.999375-43"` (yes, you do want the quotation marks; package versions are weird objects in R)
+* `getME(.,.)` should often get the components you want
+* `lme4` now uses S3 rather than S4 methods in many places. That makes some things easier ...
+
+### Things that won't work:
+* direct extraction of slots via `@` (use `getME()` instead)
+* methods that depend on `lme4` producing objects of class `mer` (write new methods for class `merMod`; `lme4` now has `isLMM()`, `isGLMM()`, `isNLMM()` that should help you distinguish different types of model if you need to)
+* the `method` argument is no longer used in `glmer` (`nAGQ=1` vs `nAGQ>1` specifies whether to use Laplace or
+* `expandSlash` no longer exists (*although it does exist within the `findbars` function: could be reconstituted??*)
+* because S4 methods are used less, and (S4) *reference* classes are used, considerably fewer methods are exported, but they are generally available as reference class method "slots"
+
+## For package writers and regular people:
+* accessor functions and methods should all work the same (slight differences in printing format for `VarCorr`)
+* there is now an `optimizer` argument. `"Nelder_Mead"` is the default, other options are `"bobyqa"` (an alternative derivative-free method); to use the `nlminb` optimizer as in the old version of lme4, you can use `optimizer="optimx"` with `control=list(method="nlminb")` (you will need the `optimx` package to be installed and loaded)
+* (residuals)
+
+## New features
+* `bootMer`
+* profiling
+* `nAGQ=0`
+* choice of optimizer, including user-specified
+
+## User-visible changes
+* `glmer` not automatically called when `family` is specified in `lmer`?
+* methods such as `fixef` no longer conflict between `nlme` and `lme4`
More information about the Lme4-commits
mailing list