[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