[med-svn] [SCM] vegan branch, master, updated. debian/2.0-3-1-10-g049dcc3

Charles Plessy plessy at debian.org
Thu Apr 4 05:44:29 UTC 2013


The following commit has been merged in the master branch:
commit 6e3991eb7c381c0f10a9ab922f2e6bfc6dfc42bb
Author: Charles Plessy <plessy at debian.org>
Date:   Thu Apr 4 14:42:01 2013 +0900

    Imported Upstream version 2.0-6

diff --git a/DESCRIPTION b/DESCRIPTION
index f16939f..c4c1f85 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: vegan
 Title: Community Ecology Package
-Version: 2.0-5
-Date: October 8, 2012
+Version: 2.0-6
+Date: February 11, 2013
 Author: Jari Oksanen, F. Guillaume Blanchet, Roeland Kindt, Pierre
         Legendre, Peter R. Minchin, R. B. O'Hara, Gavin L. Simpson,
         Peter Solymos, M. Henry H. Stevens, Helene Wagner
@@ -13,6 +13,6 @@ Description: Ordination methods, diversity analysis and other functions
         for community and vegetation ecologists.
 License: GPL-2
 URL: http://cran.r-project.org, http://vegan.r-forge.r-project.org/
-Packaged: 2012-10-08 13:52:59 UTC; jarioksa
+Packaged: 2013-02-11 12:34:02 UTC; jarioksa
 Repository: CRAN
-Date/Publication: 2012-10-08 14:38:53
+Date/Publication: 2013-02-11 14:26:43
diff --git a/MD5 b/MD5
index 5439de7..898fe5c 100644
--- a/MD5
+++ b/MD5
@@ -1,5 +1,5 @@
-841d99790c24b6b46b9be2203bdc45fc *DESCRIPTION
-439a7709754560d1bdd238e351a324c0 *NAMESPACE
+b4d5ed51fcb54b4340d9b01e736394e9 *DESCRIPTION
+b938b5c56b97b53217cf1c3f7b7cab12 *NAMESPACE
 4b8531b446af54510e5fb31f841aed2f *R/AIC.radfit.R
 5c5fdbcdc2a38e2cbafdb8f2c5eb2e08 *R/CCorA.R
 6592cf7dc692f87b4a147eb625e18624 *R/MDSrotate.R
@@ -56,14 +56,14 @@ b3ec7384552e94c46102d26e38c40538 *R/cIndexKM.R
 a6df607186ceb18d204494b6a33816d4 *R/calibrate.R
 f093f401495379d30354e6424606190a *R/calibrate.cca.R
 f56b52d53b17c7dc8d8c9accd5a3401a *R/calibrate.ordisurf.R
-ba9121631cfe10074d7075f8fb3d8f91 *R/capscale.R
+d2de008e9d603d4a7fdc1e2fcccecd51 *R/capscale.R
 bbff0e97ac052b1742a0e4ba082bac68 *R/cascadeKM.R
 2e09a82ec52e211afc2ac6e8d4b40898 *R/cca.R
 22fd69d812ee7dbaf9b23d6774ab0883 *R/cca.default.R
 e01e3acecdb9ac8d9195937e9879d126 *R/cca.formula.R
 6102056b628e02085c3bfe779a67c633 *R/centroids.cca.R
 c66d8fbe69ccca94f2ee8f777ff16ae2 *R/checkSelect.R
-6c516cbb81d76ad6c22175809211eec4 *R/clamtest.R
+c6c6a44746c586dd8b75204efa17b531 *R/clamtest.R
 365fa22c822e835218740e858d256526 *R/coef.cca.R
 8ed92f141523fe0cc4c3bb51807b8b07 *R/coef.radfit.R
 ea10763445cb76b219d18bb274109df5 *R/coef.rda.R
@@ -81,7 +81,7 @@ b18236e376b3e0fb38faa1cf10139f30 *R/densityplot.oecosimu.R
 e5b54fa580331ab24d28dc59110c45fe *R/designdist.R
 8fb0105cb21a5e425f72e0085fa669a2 *R/deviance.cca.R
 52f41185396ddd9acdcee9df7298d65a *R/deviance.rda.R
-c74ef67b8b50a55265099528e69c7d1e *R/dispindmorisita.R
+1898b0d7b1ee3f860ab52aeb525839b8 *R/dispindmorisita.R
 cafeabc2133997b3381c9edf6a971abf *R/distconnected.R
 51c2b04636ee7131d379d5aa2b3c7877 *R/diversity.R
 00136d6f9d6dd5ca16db7633eceb4e92 *R/downweight.R
@@ -89,7 +89,7 @@ cafeabc2133997b3381c9edf6a971abf *R/distconnected.R
 79c66a10794aacaf08f1d28192228bea *R/eigengrad.R
 f969318c513ddbc66982b7e7da8f3769 *R/eigenvals.R
 17a62527ee103c09bfba0c851ab12560 *R/envfit.R
-86a0a614e5840a9df15fdb00a64eed33 *R/envfit.default.R
+6e63b5fff3b7e834694b8adbdb6c6070 *R/envfit.default.R
 fe12ea2872df48afc72f59efd3c50c4f *R/envfit.formula.R
 f443552fe39ec3d6a259f953f4c3af1b *R/estaccumR.R
 81098475867f802dea0565fe426c9fc5 *R/estimateR.R
@@ -98,16 +98,16 @@ fde991da12a66144a0cd1aa30150e258 *R/estimateR.default.R
 1df3194c88598964282c114cb8db5513 *R/estimateR.matrix.R
 8fadb18ee25d5c3689f437a4d3db0360 *R/eventstar.R
 5ad3db71edac392b0513ccb96700af0d *R/extractAIC.cca.R
-4146d3d0e007898a8b8bcf02c8d13fcc *R/factorfit.R
+ddc17af5f1e4d952cdf0c54048fdc7c0 *R/factorfit.R
 7e304b1c384c4d8588e5dbedd9459c73 *R/fieller.MOStest.R
 c9a0a434a146ba9ebe25a9e72f36439c *R/fisher.alpha.R
 05bd12db4d832b01b37b15294e6fa15f *R/fisherfit.R
 d9ca8944dc5fdfc396e50d118c2638c3 *R/fitspecaccum.R
-fdd1e11bb4f5ed4c31497dd3dfe18880 *R/fitted.capscale.R
-1c356de7c7721d2a6cb04abf54d91274 *R/fitted.cca.R
+dac90ca1c5655d0d1b8c163118d1db7e *R/fitted.capscale.R
+8fc0cd4954e2976b71fe4995291d2fab *R/fitted.cca.R
 0080b65cfd48bac5e53961b8e12682e5 *R/fitted.procrustes.R
 bdb5429c7c23d1f730c5c7c938fb5e09 *R/fitted.radfit.R
-6b3b45debf635860ae9c1f3bc17686fc *R/fitted.rda.R
+30ff7806ee2f3e93b436fa3d1c00fedf *R/fitted.rda.R
 57c9a7ccff6a9c066b2aba3475f2330b *R/goodness.R
 c3bc6f9771503a4b93f4dce3096fd874 *R/goodness.cca.R
 7af5f06020065621d8466decb16e0aa4 *R/goodness.metaMDS.R
@@ -146,12 +146,12 @@ e0ae9ef92dbe17d6a919913190311048 *R/metaMDSiter.R
 f63315501ad2f3a96dee9ee27a867131 *R/metaMDSredist.R
 928df675822d321e4533ba2b7cf0c79f *R/model.frame.cca.R
 9406148bd2cfa3e74b83adfe24858c46 *R/model.matrix.cca.R
-6d2cb1f0c26e7082477f0067701beed4 *R/monoMDS.R
+f746e66be6ac3ccc3be9cb4b4b375b4d *R/monoMDS.R
 beae6832197823e4ade3569c021b1693 *R/mrpp.R
 0c8ef224eeeb965c8b60bb63d5adf10e *R/mso.R
-0595a503a1542927040f1b643e85d9a2 *R/msoplot.R
+7e428f1adfdae287a1d64a79c6f2c3bc *R/msoplot.R
 7c219818ce5841e957db47f16986080b *R/multipart.R
-1757260e533d3b5521c86099be28dc5a *R/multipart.default.R
+dad9c4679ae4febe6d17af0829b282f0 *R/multipart.default.R
 4f3e2c82d5783c04f9a50761c82e2f02 *R/multipart.formula.R
 f5e79cb1c2dc1fcabb6e6b5cb4dc0828 *R/nestedbetasor.R
 85d4744650c1e2a0edf16809b77f7ab4 *R/nestedchecker.R
@@ -161,14 +161,14 @@ e65023174f4ce8874a2f88f332af5a37 *R/nestedn0.R
 e27188404c8386162d6af0fb47110a84 *R/nestedtemp.R
 74b2723851155de631716fa479f8ea38 *R/no.shared.R
 47973ff187f68836a19d20ea37c60868 *R/nobs.R
-20078fe8d961f3da96a0a589fcd53ee8 *R/oecosimu.R
+dfc5c85777c1dbc55b850dc1ccbf115a *R/oecosimu.R
 7b3988a207ecfe1ea574c5857ffcd2a3 *R/orderingKM.R
 e3d108eed97633040fa22c2b384e19e4 *R/ordiArgAbsorber.R
 d2d5d94504676e6b1edf25b0c024edf3 *R/ordiArrowMul.R
 da71b576fb9908051a545375e14a80e0 *R/ordiGetData.R
 99c1ec285e2afe4fb8beccbd507a123e *R/ordiNAexclude.R
 b78b985ccd7179b59e031bce191354da *R/ordiParseFormula.R
-e179219789c19417082b3c8b220f13e4 *R/ordiR2step.R
+119f2a2cb24ca7a63c8ee591b50d8ecf *R/ordiR2step.R
 7757339f5b8899cb54f13da274abda66 *R/ordiTerminfo.R
 e06d56a6e7d47767b9e71a73cbd3a80b *R/ordiarrows.R
 76020bb8174d580dd0f4866df2172339 *R/ordicloud.R
@@ -176,7 +176,7 @@ e06d56a6e7d47767b9e71a73cbd3a80b *R/ordiarrows.R
 7160bf241bdbe59c1145160435b274ae *R/ordiellipse.R
 c253906529c77aead16b293275f1afc3 *R/ordigrid.R
 9ca9cd415622e47453a06897e2fde751 *R/ordihull.R
-91a30c47b3cd009d2f36acbef3f30632 *R/ordilabel.R
+b8841b7492a95f04da5952d06da72e3f *R/ordilabel.R
 20a6f500c31e6640de535f0730b69a55 *R/ordilattice.getEnvfit.R
 c805e6801ef30758b9f7718269cabdfc *R/ordimedian.R
 55d2f18681d065ea6dd29e0f1e64772e *R/ordiplot.R
@@ -190,7 +190,7 @@ bfabbea279d3586a727ab576c981d028 *R/ordisplom.R
 2d233485d1aa0b604f1949c2a3691f61 *R/ordistep.R
 9511ac94227ca4c517afcaa335ccf510 *R/ordisurf.R
 1951a3f4c16c9d500145a17b293083cd *R/orditkplot.R
-74411f78962e0544796147108a778d6e *R/orditorp.R
+bc3671e5b7a30e2849d3b59f65783c97 *R/orditorp.R
 7148d283d2447ac65146d5e3237b0a9a *R/ordixyplot.R
 c53e9402a842833d80a8df39c0adee6f *R/orglpoints.R
 56c4036863990ae0ec88a8d459540fd0 *R/orglsegments.R
@@ -223,7 +223,7 @@ ed258eefbe3facce3533a16395217fab *R/plot.isomap.R
 55a0851dbcb231f65f8da29e2b904780 *R/plot.mantel.correlog.R
 45b6355daaa38bdd65f98fca234869ed *R/plot.meandist.R
 aeddafb96f777e9905a1c4660ed3cadc *R/plot.metaMDS.R
-ccf54109ea9fd76b099292c8ec211c2f *R/plot.nestedtemp.R
+2574a84757435e0594f89434a9f4ec82 *R/plot.nestedtemp.R
 fdfbb536547823f1c25bcf756c33d19d *R/plot.ordisurf.R
 da30b6ae5fd0e30543f18064cf19b54a *R/plot.orditkplot.R
 7e136913597f9f78ac069be6a5a3f465 *R/plot.permat.R
@@ -231,7 +231,7 @@ da30b6ae5fd0e30543f18064cf19b54a *R/plot.orditkplot.R
 fdc1beae72f52a43883861a8b56bf289 *R/plot.prc.R
 6cd9c1a91d03a8afb8f9148f0d369cad *R/plot.preston.R
 31b95161a7558e111e3c01778b9d17db *R/plot.prestonfit.R
-11d54a7950f3e00548eb8c32f4f5be98 *R/plot.procrustes.R
+5159170150e3c6d1ed92b5c3ec984b75 *R/plot.procrustes.R
 c7e5c6d58944d75ab6dac163e051769f *R/plot.profile.fisherfit.R
 02ff38f3fb337a63534356255b8641a9 *R/plot.rad.R
 fc2dc1b63ae6f50067a7a376c736394b *R/plot.radfit.R
@@ -255,12 +255,12 @@ e352171f478eb27cf4a875cc3a1693fc *R/points.orditkplot.R
 b4fbbb0786258e1e83c4262e0db2aa43 *R/poolaccum.R
 91aa7fd2fbd99f8e325932d59886dac7 *R/postMDS.R
 f9dcd972e5c81ce936c9ec5b296d484c *R/prc.R
-16ab904d42612ca4009a99bb66255233 *R/predict.cca.R
+32a52d09ade017e52d96eb56c05904c3 *R/predict.cca.R
 049f41cca1b39bf0a221723855cffcff *R/predict.decorana.R
 e9107f2a97c429ff8e45c62a3671c281 *R/predict.fitspecaccum.R
 06cca728e43d29da2528b01dccb26962 *R/predict.humpfit.R
 3eaaaf25580077e7dff217c3f237e37a *R/predict.radline.R
-194393ef5dc2d2ebb82d6641de089167 *R/predict.rda.R
+35a61b21f7ff4d24451aff811add56d7 *R/predict.rda.R
 eb223fbfded71ae4f0b374c1e92c3f2e *R/predict.specaccum.R
 4f56d16f5bf8f9af3477c23137a70fb5 *R/pregraphKM.R
 32d5ccabf03e23941fe3dcb2182b5c8f *R/prepanel.ordi3d.R
@@ -272,7 +272,7 @@ eb223fbfded71ae4f0b374c1e92c3f2e *R/predict.specaccum.R
 15b31674cb74df69467902853a9254d1 *R/print.anosim.R
 7c99a949e155f76c3a223741afb39836 *R/print.betadisper.R
 2945b0c68fb04cb2c7dc460a419c5478 *R/print.bioenv.R
-7ea47b62a0ca071eb48699db6adc65ea *R/print.capscale.R
+528c225f34769670a4a3049a0e29ae59 *R/print.capscale.R
 f757010a0187dc81e9b844df25c58640 *R/print.cca.R
 6d0cd7929afcbe0d192c980dc5196555 *R/print.decorana.R
 65e888e34fa8a8e1d5b577fbadb3161a *R/print.envfit.R
@@ -280,10 +280,10 @@ ff355b68b19f8d8c29917ca33d4e8b8d *R/print.factorfit.R
 53efa849e48c5c91a51f42282237253c *R/print.fisherfit.R
 6da316510cb840a6a9dd8d31d0e205af *R/print.humpfit.R
 b31dbaa6493fdda1f865f95b3e889aab *R/print.isomap.R
-7965811709121f361245c75e4932b434 *R/print.mantel.R
+6263b03c7eb5ae61f917888597abc4fd *R/print.mantel.R
 f92fd82d10ce91e2cba2239e756e1332 *R/print.mantel.correlog.R
 9d6b6102e251f155c0b9af98d37a5f49 *R/print.metaMDS.R
-7e9b861d872cad8928c5ccfa4de01fa3 *R/print.monoMDS.R
+7f2dbb16f8602bf3aa22b1fc69707dda *R/print.monoMDS.R
 8bd5bbb931a97ddada79e4552bd614b8 *R/print.mrpp.R
 946b3b708190211e9eb1acc94ffa102d *R/print.mso.R
 7c074bf7870cb4c306c6181769b28a19 *R/print.nestedchecker.R
@@ -298,7 +298,7 @@ f0c12622e4f250aacca5b7fabe54cbd1 *R/print.permutest.cca.R
 a01e4eeb80a020c9e516f47f559baa98 *R/print.poolaccum.R
 c0f0559d9f53c8635bba01f1f90b7cc3 *R/print.prestonfit.R
 4abe25d64d3e55ef83ece3691f77f900 *R/print.procrustes.R
-38e5d913b2cfca63dbb923278c2deee8 *R/print.protest.R
+d971f6b79980b918b6b39772c53bedbd *R/print.protest.R
 480adb7c75b99e469b5600c62aa8d12d *R/print.radfit.R
 8b1a0e667c16cbd376a88962cb3baf19 *R/print.radfit.frame.R
 a589e795a078e79a758c1c848b728be3 *R/print.radline.R
@@ -318,11 +318,12 @@ b3eb24e4b56838e9db1811c07d37a571 *R/print.summary.permat.R
 46680885c99c48e4bc5d84203c40d4b0 *R/print.varpart.R
 c80f3931f05ab3066dfe93b98e737856 *R/print.varpart234.R
 189ac58ee6b91e4e40ef0b89012b8ed6 *R/print.vectorfit.R
-0b50f39c4b36074a74e178356bca2ff7 *R/procrustes.R
+8917f5ef5398c984e0e2675c83e74c5c *R/print.wcmdscale.R
+083d526f54611d40ce749ffe95f169ae *R/procrustes.R
 819af0297e5d0a907f7fa91319c67e96 *R/profile.MOStest.R
 8159854c33821cea4cb77e34d882d79e *R/profile.fisherfit.R
 2f6b69115ea549102dad9b1b22c88034 *R/profile.humpfit.R
-6b42822347758e8299fd4448a17b4a52 *R/protest.R
+4e28e2b84d11d8f8b0ad6755bcbe2ef1 *R/protest.R
 9169bd797963b5b121684de528651170 *R/rad.lognormal.R
 b129148e6efbbe1c45482c93d66f959b *R/rad.null.R
 949aca6b5bb7954a91819b17e515e396 *R/rad.preempt.R
@@ -355,7 +356,7 @@ d46cc2163dbc117a978f64d54df7bbd4 *R/scores.betadisper.R
 2673ef1fe5912531497baaa07bfd9920 *R/scores.default.R
 6415eb8600a7e516ae6c053832c45357 *R/scores.envfit.R
 7609ff8ca8b5d96e69f1933e4f90c483 *R/scores.lda.R
-ff55ff537032370f936272467656ba9c *R/scores.metaMDS.R
+f60983f80088428cc3ce955a975fa6b3 *R/scores.metaMDS.R
 d07740764d55fbfe7560ad101ea495a1 *R/scores.ordihull.R
 f146575a3f60358567dfed56e8cbb2cd *R/scores.ordiplot.R
 512cedf50891372019cae370b240a742 *R/scores.orditkplot.R
@@ -378,7 +379,7 @@ e1857ce9bf27f6a66ab2d0f7a2c05478 *R/specaccum.R
 2cf0545588fb2bb86185f71c21bda1c5 *R/spenvcor.R
 33d884aae53dcc5fa80d9e9ffae4515e *R/stepacross.R
 30cd106b7947532f7eb5969d7a864f40 *R/stressplot.R
-cd4e7ded0cb4d891a6d47f059e05442f *R/summary.anosim.R
+a61ce658c68a8b17e094f7b0040e4efe *R/summary.anosim.R
 7145185243348b4a1be616329b87b9ff *R/summary.bioenv.R
 772628c3a5de67f983d6ba15d8274b40 *R/summary.cca.R
 7bbf5652f229c2e7920c43192bb2e7b1 *R/summary.clamtest.R
@@ -405,8 +406,8 @@ a8c1bf3d3f371f3ee5a3de3c39a4113a *R/summary.procrustes.R
 846003f5f9de23241805042ac459ed1d *R/text.orditkplot.R
 0fc7a75cf414d76cc751cc33ed5d6384 *R/tolerance.R
 207fe2c0d2f5da03f65e287f93ea2d15 *R/tolerance.cca.R
-f50e3ac94cdb27284d11163de45f89c6 *R/treedist.R
-64a28797a709ffb54deed10fb9d1f1c1 *R/treedive.R
+4c4be7182a861de34673afccd1bd372c *R/treedist.R
+350a6ba06c34f2efc74c6aa503f8a7ab *R/treedive.R
 cf0f2cbf17bbd944d455f71918ab88eb *R/treeheight.R
 4f9be34a32cdc1e7694bbbdc9a1fd6d3 *R/tsallis.R
 dacccbf53e46fe0d4d98af2cd45c2569 *R/tsallisaccum.R
@@ -424,7 +425,7 @@ ad9c801b614dd9f73558eb32689ef8f9 *R/vegemite.R
 5d6047d7f63f04ae9ff40179c534aa0b *R/veiledspec.R
 1f6deab4b61a9be48be43e80703cd4b6 *R/vif.cca.R
 322254f8bc3b02f7a971058cbdfa9edd *R/wascores.R
-41a2c3dd33c16e30fbe8655b83c7b606 *R/wcmdscale.R
+e5db28e2a61cf6ad72cfe0d6d600f25d *R/wcmdscale.R
 ecfd48e2f4df6bcd683a87203dd80e12 *R/weights.cca.R
 76c939e9fe7776e51eeabc1d44be83cb *R/weights.decorana.R
 73babeed9df14635d99b1a619a1286e4 *R/weights.rda.R
@@ -442,22 +443,22 @@ c51905bd025ccea2737527b6fca4a081 *data/mite.pcnm.rda
 ee3c343418d7cf2e435028adf93205f1 *data/sipoo.rda
 f87df84297865b5faf31e232e97a0f94 *data/varechem.rda
 82153b3e47807b926b77cef49900f422 *data/varespec.rda
-e277418485f322c350fb3f0f3060ca4c *inst/ChangeLog
-0929874442ebca450bb3dfb965e1a664 *inst/NEWS.Rd
+27ee2fdae550893ef43d308c63245ab1 *inst/ChangeLog
+e7bfd68f9f2e2e804ded0ce8a6cea011 *inst/NEWS.Rd
 9abfab8b05c34dd283379a7d87500ffb *inst/ONEWS
-276ec5d3b110d6c989a167df0be2ac60 *inst/doc/FAQ-vegan.pdf
-106b655f1410bb42eb5cb46b733451ec *inst/doc/FAQ-vegan.texi
+bde01a71ea9b74bbd541fdc675ef53f9 *inst/doc/FAQ-vegan.pdf
+a901a5efa50b13f8ce50b95bada4a1b8 *inst/doc/FAQ-vegan.texi
 a712f5f699b09276e523f83ce3b731ae *inst/doc/Makefile
-1f885635aeb01b38fae7c6a9178d0cf5 *inst/doc/NEWS.html
+e31e8341d1bfb6c668847c76b7655e06 *inst/doc/NEWS.html
 bfad8283cb33e6e2837f62360671a014 *inst/doc/decision-vegan.Rnw
-ed620c74dffdcb44f8e67777cc827e92 *inst/doc/decision-vegan.pdf
-95d0308a4a52046bd422a43d6fb89b10 *inst/doc/decision-vegan.tex
-5b8e069938a0131e3fef6efa8672c2f0 *inst/doc/diversity-vegan.Rnw
-bc98f37c4e876c1b40c44cb8dd6e09fa *inst/doc/diversity-vegan.pdf
-1a5efe2e0b2794c10cb6ae87cbde7e63 *inst/doc/diversity-vegan.tex
-81b0f1cea43478f0d5ed354b8eb8cb73 *inst/doc/intro-vegan.Rnw
-a0312443c08df5cc22f648b53bb20648 *inst/doc/intro-vegan.pdf
-8847f6fe515c51cfdf8c7cab1f14a77b *inst/doc/intro-vegan.tex
+bccf896f24a6d941907ae1c095f601ff *inst/doc/decision-vegan.pdf
+9394ecf28c95c20d965655591a8b29f0 *inst/doc/decision-vegan.tex
+51f01c074c07c22f3da55c597ca05d9a *inst/doc/diversity-vegan.Rnw
+68b2d85739ad66045f2b368268f22929 *inst/doc/diversity-vegan.pdf
+2962abdd9039acaf3424781ea6a30ed6 *inst/doc/diversity-vegan.tex
+53ffe702420a71c3cbc8b8287b25fbfe *inst/doc/intro-vegan.Rnw
+d5aff24f82fc09a922855080b1680737 *inst/doc/intro-vegan.pdf
+9ee9153ce0876a63fc4b851f8a838e2f *inst/doc/intro-vegan.tex
 a1c35ea488b715441cd2269eb6998945 *inst/doc/partitioning.pdf
 bafe698f5c543e20d4c52659545677bf *inst/doc/vegan.bib
 8790e1afcfbf88c374d6c87928eab54f *inst/doc/veganjss.sty
@@ -479,18 +480,18 @@ c57af27fa11dadcd48981fcf42b2d221 *man/as.mlm.Rd
 b04c2fae35dba2d97cb248814d5e2fe9 *man/bgdispersal.Rd
 890f6ec54dcf7962cbaa197ef7be8339 *man/bioenv.Rd
 1eab4a6369fa1d203a4a3f41f4ee4c06 *man/biplot.rda.Rd
-e2cfaeba8e49d98db1952d2406d9b2ae *man/capscale.Rd
+88602656153ee95f10335487273e132d *man/capscale.Rd
 d3c1067cb5e4dc6f6b9a1c7d94e70ab5 *man/cascadeKM.Rd
-3dd123c139b485271485355079c685a5 *man/cca.Rd
-46256ab1491bec3fe5cd98c0aaaebec0 *man/cca.object.Rd
-c083092c765a7249ba073c25c43c34a3 *man/clamtest.Rd
+be184dfa5e05b449f46efb5a94b80d25 *man/cca.Rd
+4da051166c46889d3bce1bda6f353846 *man/cca.object.Rd
+0a27f941c844520672e5ca370fda6719 *man/clamtest.Rd
 335d0f7691ad9d0c48fffce9f9db6201 *man/contribdiv.Rd
 c41033fb9c572365490cc23b9870c950 *man/decorana.Rd
 00a34002a7464d1008b2ba63526a4afe *man/decostand.Rd
 5a48fad137cfbbc09ff287edb5170542 *man/density.adonis.Rd
 22e3451a1cc9e294c2ad0e1a4531b136 *man/designdist.Rd
 c01e0664652fbc8ef4963059bee4e422 *man/deviance.cca.Rd
-fa5821f3d5077efdf01f78f68bcaec83 *man/dispindmorisita.Rd
+f58b474141a1b0fdf438bfe6dd8da0c9 *man/dispindmorisita.Rd
 f3f742efa7511a4c33108a00b512ebd9 *man/distconnected.Rd
 b9e1c696647b4029f944e830184eb2c9 *man/diversity.Rd
 31a227bd7e2dd4cf92c9b936e1f49963 *man/dune.Rd
@@ -512,11 +513,11 @@ f5db928e02639d251389edb1cd36ff13 *man/mantel.correlog.Rd
 8219156d6aa03c5882324feee963e5cb *man/metaMDS.Rd
 4cfb02239809fa03b28e10ec8e8c9c6b *man/mite.Rd
 0d0876437491b3701e4d20cbbf0d1b6f *man/model.matrix.cca.Rd
-54d0363b992caac0546642cd5c6d3f7b *man/monoMDS.Rd
+09bf57e9d9ae0178eca8facf3f9d20b7 *man/monoMDS.Rd
 6ebc1e9be42fd2ffc21f4d8a81512f91 *man/mrpp.Rd
-99129fa5cefe7d1a83ca04f32f0a91ba *man/mso.Rd
+382e99ee5b67d89f2f9ad440236929f5 *man/mso.Rd
 56a812e640082ccf928224114330130b *man/multipart.Rd
-17b0186a4e98a2fe6b66d9f56ad3f958 *man/nestedtemp.Rd
+646fcb9015f0f3dc520ab2be0db5c042 *man/nestedtemp.Rd
 2907c7465be1247d2ed930025b877403 *man/nobs.adonis.Rd
 ba28e7e71d0637fd962d53d1e23488c0 *man/oecosimu.Rd
 3e6f6e4c473e4ea91c18d34bf487ff0c *man/ordiarrows.Rd
@@ -526,10 +527,10 @@ ba28e7e71d0637fd962d53d1e23488c0 *man/oecosimu.Rd
 b88713c8f69a6a0e677d406b51d2062e *man/ordiplot3d.Rd
 ca2ed47e3adb6f4ab9aa861872b07e4b *man/ordipointlabel.Rd
 d4d27a34b2e7d9d1b732a0d06cb9d9f4 *man/ordiresids.Rd
-9bd611f72fad857e16a10f46f8f80e86 *man/ordistep.Rd
+6bd225981e288d67974938ac56fcc7cf *man/ordistep.Rd
 7b62153e759a450cfececacbd385cd63 *man/ordisurf.Rd
 42dfa56db8adbd0a44e716086dee6d7d *man/orditkplot.Rd
-f3d8ca5afe5c64965ac7cb658980d93f *man/orditorp.Rd
+8785cc44c56d1b24fbcbde8de9e325d5 *man/orditorp.Rd
 d971701b3c6f89b3a6b358a3966a43d2 *man/ordixyplot.Rd
 59c7d8943e1e82c1ed771ee91eef3e66 *man/pcnm.Rd
 864ed25d069da12a2226310240f1f740 *man/permatfull.Rd
@@ -537,8 +538,8 @@ d971701b3c6f89b3a6b358a3966a43d2 *man/ordixyplot.Rd
 fb24c58ca61caf767ced5bd79dbff57e *man/permutest.betadisper.Rd
 a8862a670b6894fc38bbb2ade4c85e23 *man/plot.cca.Rd
 9f296f0830397598ee4849fc006762d1 *man/prc.Rd
-a02878ee16916bc9cdccb7bc6cd6b6c0 *man/predict.cca.Rd
-5208c960ebdfa5d51e6430763c8a944e *man/procrustes.Rd
+165334d6ad139cadd36957afd6d10923 *man/predict.cca.Rd
+80aa98f140babc312081f0a01ad3a77d *man/procrustes.Rd
 01a6ca946df5ad493adfb54003ad8e00 *man/pyrifos.Rd
 26f6e755b8b18407ed6c30dbf7887533 *man/radfit.Rd
 3e70bfa0a8ae5d4c3c60dba77500b584 *man/rankindex.Rd
@@ -556,7 +557,7 @@ d7dd63e022633049766cffdaf6cac723 *man/spantree.Rd
 5b9e51c85395f80f8504954e4175f877 *man/stepacross.Rd
 0aac5f5c8f58fc8fe1cb6c0ba819b196 *man/taxondive.Rd
 85f77fcf89b48586502c00baef8e5561 *man/tolerance.Rd
-af0e9dd8ea39743f9e7a8c471eed29e7 *man/treedive.Rd
+bfe306a0cb659930e17e46d191f7629f *man/treedive.Rd
 5a1c08a3f35d82027259b3000e94cd2e *man/tsallis.Rd
 033dd7d7917185cea81e4d7afcd59df9 *man/varechem.Rd
 be68944c43a32540e71a0e0b215be64b *man/varpart.Rd
@@ -568,7 +569,7 @@ f6f284ceb3b9a39e7b079936f9400cc2 *man/vegandocs.Rd
 197fe8ed2fe66db294381cb3c08325e1 *man/vegdist.Rd
 3fc88b0b479d2099ced8ca764fbcbea6 *man/vegemite.Rd
 c3209a8eff0fe638d3a43b25ea5bec16 *man/wascores.Rd
-99d6eca6ce44322c03850991ef4de828 *man/wcmdscale.Rd
+26906624d4a17e3cf4a20f7305190ba6 *man/wcmdscale.Rd
 dd4512521b5b7a678f87c7f27d6b986c *src/cepin.f
 dd22a1632081402e62320a4c0d6b2aa9 *src/data2hill.c
 7703ffdb64c5f31de56bfd8253877ad6 *src/decorana.f
diff --git a/NAMESPACE b/NAMESPACE
index 164286f..cd8f2c3 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -251,6 +251,7 @@ S3method(plot, mantel.correlog)
 S3method(plot, meandist)
 S3method(plot, metaMDS)
 S3method(plot, monoMDS)
+S3method(plot, nestednodf)
 S3method(plot, nestedtemp)
 S3method(plot, ordisurf)
 S3method(plot, orditkplot)
@@ -273,6 +274,7 @@ S3method(plot, taxondive)
 S3method(plot, varpart)
 S3method(plot, varpart234)
 S3method(plot, vegandensity)
+S3method(plot, wcmdscale)
 # points: graphics
 S3method(points, cca)
 S3method(points, decorana)
@@ -351,6 +353,7 @@ S3method(print, tolerance.cca)
 S3method(print, varpart)
 S3method(print, varpart234)
 S3method(print, vectorfit)
+S3method(print, wcmdscale)
 # profile: stats
 # see note on 'confint'
 S3method(profile, MOStest)
@@ -381,6 +384,7 @@ S3method(scores, ordiplot)
 S3method(scores, orditkplot)
 S3method(scores, pcnm)
 S3method(scores, rda)
+S3method(scores, wcmdscale)
 # screeplot: stats
 S3method(screeplot, cca)
 S3method(screeplot, decorana)
diff --git a/R/capscale.R b/R/capscale.R
index 35a790b..029a240 100644
--- a/R/capscale.R
+++ b/R/capscale.R
@@ -88,8 +88,13 @@
     if (is.null(rownames(X$points))) 
         rownames(X$points) <- nm
     X$points <- adjust * X$points
-    if (adjust == 1)
+    ## We adjust eigenvalues to variances, and simultaneously the
+    ## possible negative axes must be adjusted similarly
+    if (adjust == 1) {
         X$eig <- X$eig/k
+        if (!is.null(X$negaxes))
+            X$negaxes <- X$negaxes/sqrt(k)
+    }
     sol <- rda.default(X$points, d$Y, d$Z, ...)
     if (!is.null(sol$CCA) && sol$CCA$rank > 0) {
         colnames(sol$CCA$u) <- colnames(sol$CCA$biplot) <- names(sol$CCA$eig) <-
@@ -122,14 +127,12 @@
             comm <- qr.resid(sol$pCCA$QR, comm)
         if (!is.null(sol$CCA) && sol$CCA$rank > 0) {
             sol$CCA$v.eig <- t(comm) %*% sol$CCA$u/sqrt(k)
-            sol$CCA$v <- sweep(sol$CCA$v.eig, 2, sqrt(sol$CCA$eig), 
-                               "/")
+            sol$CCA$v <- decostand(sol$CCA$v.eig, "normalize", MARGIN = 2)
             comm <- qr.resid(sol$CCA$QR, comm)
         }
         if (!is.null(sol$CA) && sol$CA$rank > 0) {
             sol$CA$v.eig <- t(comm) %*% sol$CA$u/sqrt(k)
-            sol$CA$v <- sweep(sol$CA$v.eig, 2, sqrt(sol$CA$eig[1:poseig]), 
-                              "/")
+            sol$CA$v <- decostand(sol$CA$v.eig, "normalize", MARGIN = 2)
         }
     } else {
         ## input data were dissimilarities, and no 'comm' defined:
diff --git a/R/clamtest.R b/R/clamtest.R
index eea17c3..60bbcc8 100644
--- a/R/clamtest.R
+++ b/R/clamtest.R
@@ -19,7 +19,7 @@ specialization = 2/3, npoints = 20, alpha = 0.05/20)
         stop("number of groups must be 2")
     glabel <- as.character(unique(groups))
     if (is.null(colnames(comm)))
-        colnames(comm) <- paste("Species", 1:nrow(comm), sep=".")
+        colnames(comm) <- paste("Species", 1:ncol(comm), sep=".")
     if (any(colSums(comm) <= 0))
         stop("'comm' contains zero sum columns")
     spp <- colnames(comm)
@@ -73,14 +73,28 @@ specialization = 2/3, npoints = 20, alpha = 0.05/20)
     ## finding Xmin and Ymin values for Xseq and Yseq
     Xmins <- sapply(Yseq, function(z) rootfun(z, C1, C2, n, m, upper=max(X)))
     Ymins <- sapply(Xseq, function(z) rootfun(z, C2, C1, m, n, upper=max(Y)))
+
+    ## needed to tweak original set of rules (extreme case reported
+    ## by Richard Telford failed here)
+    if (all(is.na(Xmins)))
+        Xmins[1] <- 1
+    if (all(is.na(Ymins)))
+        Ymins[1] <- 1
+
     minval <- list(data.frame(x=Xseq[!is.na(Ymins)], y=Ymins[!is.na(Ymins)]),
         data.frame(x=Xmins[!is.na(Xmins)], y=Yseq[!is.na(Xmins)]))
+
     ## shared but too rare
     Ymin <- Ymins[1]
     Xmin <- Xmins[1]
     sr <- X < Xmin & Y < Ymin
-    tmp1 <- approx(c(Xmin, 1), c(1, Ymin), xout=1:Xmin)
-    tmp2 <- approx(c(1, Ymin), c(Xmin, 1), xout=1:Ymin)
+
+    ## consequence of manually setting Xmin/Ymin resolved here
+    tmp1 <- if (Xmin==1)
+        list(x=1, y=Xmin) else approx(c(Xmin, 1), c(1, Ymin), xout=1:Xmin)
+    tmp2 <- if (Ymin==1)
+        list(x=1, y=Ymin) else approx(c(1, Ymin), c(Xmin, 1), xout=1:Ymin)
+
     for (i in 1:S) {
         if (X[i] %in% tmp1$x)
             sr[i] <- Y[i] < tmp1$y[which(X[i]==tmp1$x)]
@@ -97,7 +111,7 @@ specialization = 2/3, npoints = 20, alpha = 0.05/20)
     tmp <- ifelse(cbind(gen, specY, specX, sr), 1, 0)
     types <- c("Generalist", paste("Specialist", glabel[1], sep="_"),
         paste("Specialist", glabel[2], sep="_"), "Too_rare")
-    classes <- as.factor((1:4)[rowSums(tmp*col(tmp))])
+    classes <- factor((1:4)[rowSums(tmp*col(tmp))], levels=1:4)
     levels(classes) <- c("Generalist", paste("Specialist", glabel[1], sep="_"),
         paste("Specialist", glabel[2], sep="_"), "Too_rare")
     tab <- data.frame(Species=spp, y=Y, x=X, Classes=classes)
diff --git a/R/dispindmorisita.R b/R/dispindmorisita.R
index 3dbcac2..272a573 100644
--- a/R/dispindmorisita.R
+++ b/R/dispindmorisita.R
@@ -1,17 +1,18 @@
 `dispindmorisita` <-
-function(x, unique.rm=FALSE, crit=0.05)
+function(x, unique.rm=FALSE, crit=0.05, na.rm=FALSE)
 {
     x <- as.matrix(x)
     n <- nrow(x)
     p <- ncol(x)
-    Imor <- numeric(p)
     Imor <- apply(x, 2, function(y) n * ((sum(y^2) - sum(y)) / (sum(y)^2 - sum(y))))
     Smor <- Imor
     chicr <- qchisq(c(0+crit/2, 1-crit/2), n-1, lower.tail=FALSE)
     Muni <- apply(x, 2, function(y) (chicr[2] - n + sum(y)) / (sum(y) - 1))
     Mclu <- apply(x, 2, function(y) (chicr[1] - n + sum(y)) / (sum(y) - 1))
+    rs <- colSums(x, na.rm=na.rm)
+    pchi <- pchisq(Imor * (rs - 1) + n - rs, n-1, lower.tail=FALSE)
     for (i in 1:p) {
-        if (apply(x, 2, sum)[i] > 1) {
+        if (rs[i] > 1) {
             if (Imor[i] >= Mclu[i] && Mclu[i] > 1)
                 Smor[i] <- 0.5 + 0.5 * ((Imor[i] - Mclu[i]) / (n - Mclu[i]))
             if (Mclu[i] > Imor[i] && Imor[i] >=1)
@@ -22,8 +23,9 @@ function(x, unique.rm=FALSE, crit=0.05)
                 Smor[i] <- -0.5 + 0.5 * ((Imor[i] - Muni[i]) / Muni[i])
         }
     }
-    out <- data.frame(imor=Imor,mclu=Mclu,muni=Muni,imst=Smor)
-    usp <- which(apply(x > 0, 2, sum) == 1)
+    out <- data.frame(imor = Imor, mclu = Mclu, muni = Muni,
+        imst = Smor, pchisq = pchi)
+    usp <- which(colSums(x > 0) == 1)
     if (unique.rm && length(usp) != 0)
         out <- out[-usp,]
     out
diff --git a/R/envfit.default.R b/R/envfit.default.R
index 003253b..ea3d5bf 100644
--- a/R/envfit.default.R
+++ b/R/envfit.default.R
@@ -13,7 +13,7 @@
         if (!na.rm)
             stop("missing values in data: consider na.rm = TRUE")
         X <- X[keep,, drop=FALSE]
-        env <- env[keep,, drop=FALSE]
+        env <- droplevels(env[keep,, drop=FALSE]) ## drop any lost levels
         na.action <- structure(seq_along(keep)[!keep], class="omit")
     }
     if (is.data.frame(env)) {
diff --git a/R/factorfit.R b/R/factorfit.R
index c576437..22733a3 100644
--- a/R/factorfit.R
+++ b/R/factorfit.R
@@ -2,6 +2,7 @@
     function (X, P, permutations = 0, strata, w,  ...) 
 {
     P <- as.data.frame(P)
+    P <- droplevels(P) ## make sure only the used levels are present
     if (any(!sapply(P, is.factor))) 
         stop("All fitted variables must be factors")
     NR <- nrow(X)
diff --git a/R/fitted.capscale.R b/R/fitted.capscale.R
index ec2f6aa..0ec7442 100644
--- a/R/fitted.capscale.R
+++ b/R/fitted.capscale.R
@@ -1,5 +1,5 @@
-fitted.capscale <-
-    function(object, model = c("CCA", "CA", "Imaginary"),
+`fitted.capscale` <-
+    function(object, model = c("CCA", "CA", "pCCA", "Imaginary"),
              type = c("response", "working"), ...)
 {
     model <- match.arg(model)
@@ -8,7 +8,8 @@ fitted.capscale <-
     U <- switch(model,
                 CCA = object$CCA$u.eig,
                 CA = object$CA$u.eig,
-                Imaginary = object$CA$imaginary.u.eig)
+                Imaginary = object$CA$imaginary.u.eig,
+                pCCA = object$pCCA$Fit/object$adjust)
     ## Distances or working scores U
     if (type == "response") {
         U <- dist(U)
diff --git a/R/fitted.cca.R b/R/fitted.cca.R
index b981528..3118fcb 100644
--- a/R/fitted.cca.R
+++ b/R/fitted.cca.R
@@ -1,11 +1,15 @@
-"fitted.cca" <-
-function (object, model = c("CCA","CA"), type = c("response", "working"), ...) 
+`fitted.cca` <-
+    function (object, model = c("CCA","CA","pCCA"), type = c("response", "working"),
+              ...) 
 {
     type <- match.arg(type)
     model <- match.arg(model)
     gtot <- object$grand.total
     rc <- object$rowsum %o% object$colsum
-    Xbar <- object[[model]]$Xbar
+    if (model == "pCCA")
+        Xbar <- object$pCCA$Fit
+    else
+        Xbar <- object[[model]]$Xbar
     if (model == "CCA")
         Xbar <- qr.fitted(object$CCA$QR, Xbar)
     if (type == "response")
diff --git a/R/fitted.rda.R b/R/fitted.rda.R
index 1456ad7..3968a96 100644
--- a/R/fitted.rda.R
+++ b/R/fitted.rda.R
@@ -1,9 +1,12 @@
-"fitted.rda" <-
-    function (object, model = c("CCA", "CA"), type = c("response", "working"), ...) 
+`fitted.rda` <-
+    function (object, model = c("CCA", "CA", "pCCA"), type = c("response", "working"), ...) 
 {
     type <- match.arg(type)
     model <- match.arg(model)
-    Xbar <- object[[model]]$Xbar
+    if (model == "pCCA")
+        Xbar <- object$pCCA$Fit
+    else
+        Xbar <- object[[model]]$Xbar
     if (model == "CCA") 
         Xbar <- qr.fitted(object$CCA$QR, Xbar)
     if (type == "response") {
diff --git a/R/monoMDS.R b/R/monoMDS.R
index 5db770a..df1064c 100644
--- a/R/monoMDS.R
+++ b/R/monoMDS.R
@@ -2,7 +2,7 @@
     function(dist, y, k = 2,
              model = c("global", "local", "linear", "hybrid"),
              threshold = 0.8, maxit = 200, weakties = TRUE, stress = 1,
-             scaling = TRUE, pc = TRUE, smin = 0.00001, sfgrmin = 0.00001,
+             scaling = TRUE, pc = TRUE, smin = 1e-4, sfgrmin = 1e-7,
              sratmax=0.99999, ...) 
 {
     ## Check that 'dist' are distances or a symmetric square matrix
diff --git a/R/msoplot.R b/R/msoplot.R
index 45b27d0..cdb6e09 100644
--- a/R/msoplot.R
+++ b/R/msoplot.R
@@ -1,5 +1,6 @@
 `msoplot` <-
-    function (x, alpha = 0.05, explained = FALSE, ylim = NULL, ...) 
+    function (x, alpha = 0.05, explained = FALSE, ylim = NULL, 
+    legend = "topleft", ...) 
 {
     object.cca <- x
     if (is.data.frame(object.cca$vario)) {
@@ -34,7 +35,8 @@
             lines(vario$Dist, vario$Sum, type = "b", lty = 2, 
                   pch = 3, ...)
             ## Legend
-            legend("topleft", c(label[c(2,3:b)+3], ci.lab, sign.lab),
+            legend(legend, 
+                   legend=c(label[c(2,3:b)+3], ci.lab, sign.lab),
                    lty=c(c(1,2,1,1,1)[2:b], 1, if(hasSig) NA),
                    pch=c(3, (6:(b+3))-6, NA, if(hasSig) 15)
                    )
@@ -54,8 +56,8 @@
             text(x = c(vario$Dist), y = par("usr")[3], pos = 3, 
                  label = c(vario$n), cex = 0.8)
             abline(v = max(object$H)/2, lty = 3, ...)
-            legend("topleft",
-                   c("Total variance","Global variance estimate",
+            legend(legend,
+                   legend=c("Total variance","Global variance estimate",
                      if(hasSig) "Sign. autocorrelation"),
                    lty=c(1,5, if(hasSig) NA),
                    pch = if(hasSig) c(NA,NA,15) else NULL)
diff --git a/R/multipart.default.R b/R/multipart.default.R
index 57fe78f..c146295 100644
--- a/R/multipart.default.R
+++ b/R/multipart.default.R
@@ -128,7 +128,7 @@
     attr(sim, "call") <- call
     attr(sim$oecosimu$simulated, "index") <- index
     attr(sim$oecosimu$simulated, "scales") <- scales
-    attr(sim$oecosimu$simulated, "global") <- TRUE
+    attr(sim$oecosimu$simulated, "global") <- global
     attr(sim, "n.levels") <- nlevs
     attr(sim, "terms") <- tlab
     attr(sim, "model") <- rhs
diff --git a/R/oecosimu.R b/R/oecosimu.R
index 1f14cbe..78afe75 100644
--- a/R/oecosimu.R
+++ b/R/oecosimu.R
@@ -119,8 +119,12 @@
     if (any(is.na(z)))
         p[is.na(z)] <- NA
 
-    if (is.null(names(indstat)))
+    if (is.null(names(indstat)) && length(indstat) == 1)
         names(indstat) <- statistic
+    ## $oecosimu cannot be added to a data frame, but this gives
+    ## either an error or a mess
+    if (is.data.frame(ind))
+        ind <- as.list(ind)
     if (!is.list(ind))
         ind <- list(statistic = ind)
     if (method == "custom")
diff --git a/R/ordiR2step.R b/R/ordiR2step.R
index 14d0117..7592fbd 100644
--- a/R/ordiR2step.R
+++ b/R/ordiR2step.R
@@ -4,7 +4,7 @@
 
 `ordiR2step` <-
     function(object, scope, direction = c("both", "forward"),
-             Pin = 0.05, pstep = 100, perm.max = 1000,
+             Pin = 0.05, R2scope = TRUE, pstep = 100, perm.max = 1000,
              trace = TRUE, ...)
 {
     direction <- match.arg(direction)
@@ -23,14 +23,13 @@
         scope <- delete.response(formula(scope))
     if (!inherits(scope, "formula"))
         scope <- reformulate(scope)
-    R2.all <- RsquareAdj(update(object, scope))
+    if (R2scope)
+        R2.all <- RsquareAdj(update(object, scope))
+    else
+        R2.all <- list(adj.r.squared = NA)
     ## Check that the full model can be evaluated
-    if (is.na(R2.all$adj.r.squared)) {
-        if (R2.all$r.squared > 0.999)
-            stop("the upper scope cannot be fitted (too many terms?)")
-        else
-            stop("upper scope cannot be fitted (Condition() in scope?)")
-    }
+    if (is.na(R2.all$adj.r.squared) && R2scope) 
+        stop("the upper scope cannot be fitted (too many terms?)")
     R2.all <- R2.all$adj.r.squared
     ## Collect data to anotab returned as the 'anova' object
     anotab <-  list()
@@ -75,7 +74,8 @@
         ## See if the best should be kept
         ## First criterion: R2.adj improves and is still lower or
         ## equal than for the full model of the scope
-        if (R2.adds[best] > R2.previous && R2.adds[best] <= R2.all) {
+        if (R2.adds[best] > R2.previous &&
+            if (R2scope) R2.adds[best] <= R2.all else TRUE) {
             ## Second criterion: added variable is significant
             tst <- add1(object, scope = adds[best], test="permu",
                         pstep = pstep, perm.max = perm.max,
diff --git a/R/ordilabel.R b/R/ordilabel.R
index f38f604..e50e08d 100644
--- a/R/ordilabel.R
+++ b/R/ordilabel.R
@@ -29,10 +29,15 @@
         else
             col <- par("fg")
     for (i in 1:nrow(x)) {
-        polygon(x[i,1] + c(-1,1,1,-1)*w[i], x[i,2] + c(-1,-1,1,1)*h[i],
-                col = fill, border = border, xpd = xpd)
-        text(x[i,1], x[i,2], labels = labels[i], cex = cex, col = col,
-             xpd = xpd, ...)
+        ## polygon(x[i,1] + c(-1,1,1,-1)*w[i], x[i,2] + c(-1,-1,1,1)*h[i],
+        ##         col = fill, border = border, xpd = xpd)
+        ## text(x[i,1], x[i,2], labels = labels[i], cex = cex, col = col,
+        ##      xpd = xpd, ...)
+        ordiArgAbsorber(x[i,1] + c(-1,1,1,-1)*w[i], x[i,2] + c(-1,-1,1,1)*h[i],
+                        col = fill, border = border, xpd = xpd,
+                        FUN = polygon, ...)
+        ordiArgAbsorber(x[i,1], x[i,2], labels = labels[i], cex = cex,
+                        col = col, xpd = xpd, FUN = text, ...)
     }
     invisible(x)
 }
diff --git a/R/orditorp.R b/R/orditorp.R
index 78cb664..d8893e5 100644
--- a/R/orditorp.R
+++ b/R/orditorp.R
@@ -1,5 +1,5 @@
 `orditorp` <-
-    function (x, display, labels, choices = c(1, 2), priority,
+    function (x, display, labels, choices = c(1, 2), priority, select,
               cex = 0.7, pcex, col = par("col"),
               pcol, pch = par("pch"), air = 1, ...)
 {
@@ -13,6 +13,12 @@
         labels <- rownames(x)
     if (missing(priority))
         priority <- rowSums((scale(x)^2))
+    if (!missing(select)) {
+        x <- .checkSelect(select, x)
+        labels <- .checkSelect(select, labels)
+        priority <- .checkSelect(select, priority)
+        kk <- .checkSelect(select, kk)
+    }
     ## remove NA scores
     x <- x[kk,]
     priority <- priority[kk]
diff --git a/R/plot.nestedtemp.R b/R/plot.nestedtemp.R
index bced720..b4c0010 100644
--- a/R/plot.nestedtemp.R
+++ b/R/plot.nestedtemp.R
@@ -1,3 +1,8 @@
+### plot() methods for those nested* functions that return sufficient
+### data to draw a plot. We display a plot using image() with coloured
+### rectangles for occurrences or colours dependent on the
+### contribution to the nestedness when appropriate.
+
 `plot.nestedtemp` <-
     function (x, kind = c("temperature", "incidence"),
               col = rev(heat.colors(100)), names = FALSE,  
@@ -22,3 +27,24 @@
             las = 2, ...)
     }
 }
+
+`plot.nestednodf` <-
+    function(x, col = "red", names = FALSE, ...)
+{
+    z <- x$comm
+    z <- t(z[nrow(z):1,])
+    if (length(col) == 1)
+        col <- c(NA, col)
+    image(z, axes = FALSE, col = col, ...)
+    box()
+    if (length(names) == 1)
+        names <- rep(names, 2)
+    if (names[1]) {
+        axis(2, at = seq(1, 0, len = ncol(z)), labels = rev(colnames(z)),
+            las = 2, ...)
+    }
+    if (names[2]) {
+        axis(3, at = seq(0, 1, len = nrow(z)), labels = rownames(z),
+            las = 2, ...)
+    }
+}
diff --git a/R/plot.procrustes.R b/R/plot.procrustes.R
index 29ad82f..2635c18 100644
--- a/R/plot.procrustes.R
+++ b/R/plot.procrustes.R
@@ -32,8 +32,9 @@
                 b <- abs(x$rotation[1,1])
                 EPS <- 1e-8
                 if (1 - b > EPS && b > EPS) {
-                    abline(0, tan(acos(x$rotation[1, 1])), lty = 1)
-                    abline(0, 1/tan(acos(-x$rotation[1, 1])), lty = 1)
+                    rot <- x$rotation
+                    abline(0, rot[1,2]/rot[1,1], lty = 1)
+                    abline(0, rot[2,2]/rot[2,1], lty = 1)
                 } else {
                     abline(v = 0, h = 0)
                 }
diff --git a/R/predict.cca.R b/R/predict.cca.R
index 1d9e0db..5d940fe 100644
--- a/R/predict.cca.R
+++ b/R/predict.cca.R
@@ -31,8 +31,6 @@
         }
         if (take > 0) 
             Xbar <- u %*% slam %*% t(v)
-        if (!is.null(object$pCCA)) 
-            warning("Conditional ('partial') component ignored")
         rc <- outer(rs, cs)
         if (type == "response") 
             out <- (Xbar + 1) * rc * gtot
diff --git a/R/predict.rda.R b/R/predict.rda.R
index da6a7cb..a2e7dce 100644
--- a/R/predict.rda.R
+++ b/R/predict.rda.R
@@ -25,15 +25,13 @@
         w <- u
     slam <- diag(sqrt(object[[model]]$eig[1:take] * nr), nrow = take)
     if (type %in% c("response", "working")) {
-        if (!is.null(object$pCCA)) 
-            warning("Conditional ('partial') component ignored")
         if (!missing(newdata)) {
             u <- predict(object, type = if(model == "CCA") "lc" else "wa",
                          newdata = newdata, rank = take)
         }
         if (inherits(object, "capscale")) {
             if (take > 0) {
-                out <- u %*% slam/sqrt(nr)
+                out <- u %*% slam/object$adjust
                 if (type == "response") {
                     out <- dist(out)
                     if (!is.null(object$ac))
diff --git a/R/print.capscale.R b/R/print.capscale.R
index fc770ed..ca6f197 100644
--- a/R/print.capscale.R
+++ b/R/print.capscale.R
@@ -3,5 +3,7 @@
 {
     NextMethod("print", x, ...)
     if (!is.null(x$metaMDSdist))
-        cat("metaMDSdist transformed data:", x$metaMDSdist, "\n\n") 
+        cat("metaMDSdist transformed data:", x$metaMDSdist, "\n\n")
+    if (!is.null(x$ac))
+        cat("Constant added to distances:", x$ac, "\n\n")
 }
diff --git a/R/print.mantel.R b/R/print.mantel.R
index f7ad26d..cce7f89 100644
--- a/R/print.mantel.R
+++ b/R/print.mantel.R
@@ -1,4 +1,4 @@
-"print.mantel" <-
+`print.mantel` <-
   function (x, digits = max(3, getOption("digits") - 3), ...) 
 {
   cat("\n")
@@ -14,7 +14,7 @@
     cat("      Significance:", format.pval(x$signif), 
         "\n\n")
     out <- quantile(x$perm, c(0.9, 0.95, 0.975, 0.99))
-    cat("Empirical upper confidence limits of r:\n")
+    cat("Upper quantiles of permutations (null model):\n")
     print(out, digits = 3)
     cat("\nBased on", nperm, "permutations")
     if (!is.null(x$strata)) 
diff --git a/R/print.monoMDS.R b/R/print.monoMDS.R
index b7b9aea..1cf7e92 100644
--- a/R/print.monoMDS.R
+++ b/R/print.monoMDS.R
@@ -44,8 +44,10 @@
 {
     if (any(is.na(choices)))
         x$points
-    else
+    else {
+        choices <- choices[choices <= x$ndim]
         x$points[, choices, drop = FALSE]
+    }
 }
 
 `plot.monoMDS` <-
diff --git a/R/print.protest.R b/R/print.protest.R
index 8f26887..5d94c62 100644
--- a/R/print.protest.R
+++ b/R/print.protest.R
@@ -3,7 +3,9 @@
 {
   cat("\nCall:\n")
   cat(deparse(x$call), "\n\n")
-  cat("Correlation in a symmetric Procrustes rotation:  ")
+  cat("Procrustes Sum of Squares (m12 squared):        ")
+  cat(formatC(x$ss, digits=digits), "\n")
+  cat("Correlation in a symmetric Procrustes rotation: ")
   cat(formatC(x$t0, digits = digits), "\n")
   cat("Significance:  ")
   cat(format.pval(x$signif),"\n")
diff --git a/R/print.wcmdscale.R b/R/print.wcmdscale.R
new file mode 100644
index 0000000..225091a
--- /dev/null
+++ b/R/print.wcmdscale.R
@@ -0,0 +1,61 @@
+### support functions for wcmdscale results: print, scores and plot.
+
+`print.wcmdscale` <-
+    function(x, digits = max(3, getOption("digits") - 3), ...)
+{
+    writeLines(strwrap(pasteCall(x$call)))
+    cat("\n")
+    ## tabulate total inertia and ranks
+    totev <- sum(x$eig)
+    negax <- x$eig < 0
+    if (any(negax)) {
+        ranks <- c(NA, sum(!negax), sum(negax))
+        negax <- x$eig < 0
+        realev <- sum(x$eig[!negax])
+        imev <- sum(x$eig[negax])
+        evs <- c("Total" = totev, "Real" = realev, "Imaginary" = imev)
+    } else {
+        ranks <- length(x$eig)
+        evs <- c("Total" = totev)
+    }
+    tbl <- cbind("Inertia" = evs, "Rank" = ranks)
+    printCoefmat(tbl, digits = digits, na.print = "")
+    cat("\nResults have", NROW(x$points), "points,", NCOL(x$points), "axes\n")
+    ## print eigenvalues, but truncate very long lists
+    PRINLIM <- 120
+    neig <- length(x$eig)
+    cat("\nEigenvalues:\n")
+    print(zapsmall(x$eig[1 : min(neig, PRINLIM)], digits = digits, ...))
+    if (neig > PRINLIM)
+        cat("(Showed only", PRINLIM, "of all", neig, "eigenvalues)\n")
+    wvar <- var(x$weights)
+    wlen <- length(x$weights)
+    cat("\nWeights:")
+    if (wvar < 1e-6)
+        cat(" Constant\n")
+    else {
+        cat("\n")
+        print(zapsmall(x$weights[1 : min(wlen, PRINLIM)], digits = digits, ...))
+        if (wlen > PRINLIM)
+            cat("(Showed only", PRINLIM, "of all", wlen, "weights)\n")
+    }
+    cat("\n")
+    invisible(x)
+}
+
+`scores.wcmdscale` <-
+    function(x, choices = NA, ...)
+{
+    if (any(is.na(choices)))
+        x$points
+    else {
+        choices <- choices[choices <= NCOL(x$points)]
+        x$points[, choices, drop = FALSE]
+    }
+}
+
+`plot.wcmdscale` <-
+    function(x, choices = c(1,2), type = "t", ...)
+{
+    ordiplot(x, display = "sites", choices = choices, type = type, ...)
+}
diff --git a/R/procrustes.R b/R/procrustes.R
index c4434ea..c30b09b 100644
--- a/R/procrustes.R
+++ b/R/procrustes.R
@@ -11,7 +11,7 @@
         addcols <- ncol(Y) - ncol(X)
         for (i in 1:addcols) X <- cbind(X, 0)
     }
-    ctrace <- function(MAT) sum(diag(crossprod(MAT)))
+    ctrace <- function(MAT) sum(MAT^2)
     c <- 1
     if (symmetric) {
         X <- scale(X, scale = FALSE)
diff --git a/R/protest.R b/R/protest.R
index 2ea5a53..0671af0 100644
--- a/R/protest.R
+++ b/R/protest.R
@@ -3,14 +3,26 @@
 {
     X <- scores(X, display = scores, ...)
     Y <- scores(Y, display = scores, ...)
-    sol <- procrustes(X, Y, symmetric = TRUE)
+    ## Centre and normalize X & Y here so that the permutations will
+    ## be faster
+    X <- scale(X, scale = FALSE)
+    Y <- scale(Y, scale = FALSE)
+    X <- X/sqrt(sum(X^2))
+    Y <- Y/sqrt(sum(Y^2))
+    ## Transformed X and Y will yield symmetric procrustes() and we
+    ## need not specify that in the call (but we set it symmetric
+    ## after the call).
+    sol <- procrustes(X, Y, symmetric = FALSE)
+    sol$symmetric <- TRUE
     sol$t0 <- sqrt(1 - sol$ss)
     N <- nrow(X)
     perm <- rep(0, permutations)
     for (i in 1:permutations) {
         take <- permuted.index(N, strata)
-        tmp <- procrustes(X, Y[take, ], symmetric = TRUE)$ss
-        perm[i] <- sqrt(1 - tmp)
+        ## avoid overhead of procrustes() and only evaluate the
+        ## statistic by svd (hand crafted from r2388 of the devel
+        ## branch).
+        perm[i] <- sum(svd(crossprod(X, Y[take,]), nv = 0, nu = 0)$d)
     }
     Pval <- (sum(perm >= sol$t0) + 1)/(permutations + 1)
     if (!missing(strata)) {
diff --git a/R/scores.metaMDS.R b/R/scores.metaMDS.R
index 3d5bc63..310c25c 100644
--- a/R/scores.metaMDS.R
+++ b/R/scores.metaMDS.R
@@ -1,9 +1,11 @@
-"scores.metaMDS" <-
+`scores.metaMDS` <-
     function(x, display = c("sites", "species"), shrink = FALSE, choices, ...)
 {
     display <- match.arg(display)
     if (missing(choices))
         choices <- 1:x$ndim
+    else
+        choices <- choices[choices <= x$ndim]
     if (display == "sites")
         X <- x$points
     else if (display == "species") {
@@ -21,6 +23,6 @@
         }
     }
     colnames(X) <- paste("NMDS", 1:ncol(X), sep="")
-    X[, choices]
+    X[, choices, drop = FALSE]
 }
 
diff --git a/R/summary.anosim.R b/R/summary.anosim.R
index ea2e864..ba96071 100644
--- a/R/summary.anosim.R
+++ b/R/summary.anosim.R
@@ -1,10 +1,10 @@
-"summary.anosim" <-
+`summary.anosim` <-
 function (object, ...) 
 {
    print(object)
    if (object$permutations) {
      out <- quantile(object$perm, c(0.9, 0.95, 0.975, 0.99))
-     cat("Empirical upper confidence limits of R:\n")
+     cat("Upper quantiles of permutations (null model):\n")
      print(out, digits=3)
    }
    cat("\n")
diff --git a/R/treedist.R b/R/treedist.R
index 36638e1..3c694c0 100644
--- a/R/treedist.R
+++ b/R/treedist.R
@@ -1,9 +1,16 @@
 `treedist` <-
-    function(x, tree, relative = TRUE,  ...)
+    function(x, tree, relative = TRUE,  match.force = FALSE, ...)
 {
     n <- nrow(x)
     ABJ <- matrix(0, n , n)
     dmat <- as.matrix(cophenetic(tree))
+    ## match names
+    if (ncol(x) != ncol(dmat) || match.force) {
+        if(!match.force)
+            warning("Dimensions do not match between 'x' and 'tree' - matching by names")
+        nm <- colnames(x)
+        dmat <- dmat[nm, nm]
+    }
     for(j in 1:n) {
         for (k in j:n) {
             jk <- x[j,] > 0 | x[k,] > 0
diff --git a/R/treedive.R b/R/treedive.R
index 4f12cb9..1497e42 100644
--- a/R/treedive.R
+++ b/R/treedive.R
@@ -19,6 +19,7 @@
         if (!all(fnd))
             warning("not all names of 'tree' found in 'comm'")
         comm <- comm[, tree$labels[fnd]]
+        m <- m[tree$labels[fnd], tree$labels[fnd]]
         if (length(unique(tree$labels)) != length(tree$labels))
             stop("names not unique in 'tree': match wrong")
         if (length(unique(colnames(comm))) != ncol(comm))
diff --git a/R/wcmdscale.R b/R/wcmdscale.R
index ed2ed1b..a01f7b1 100644
--- a/R/wcmdscale.R
+++ b/R/wcmdscale.R
@@ -48,9 +48,10 @@ function(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
     GOF <- c(sum(ev)/sum(abs(e$values)),
              sum(ev)/sum(e$values[e$values > 0]))
     if (eig || x.ret || add) {
+        colnames(points) <- paste("Dim", seq_len(NCOL(points)), sep="") 
         out <- list(points = points, eig = if (eig) e$values,
                     x = if (x.ret) m, ac = NA, GOF = GOF, weights = w,
-                    negaxes = negaxes)
+                    negaxes = negaxes, call = match.call())
         class(out) <- "wcmdscale"
     }
     else out <- points
diff --git a/inst/ChangeLog b/inst/ChangeLog
index 88c5157..b5f8fdb 100644
--- a/inst/ChangeLog
+++ b/inst/ChangeLog
@@ -1,7 +1,49 @@
-$Date: 2012-10-07 19:50:53 +0300 (Sun, 07 Oct 2012) $
+$Date: 2013-02-11 09:35:39 +0200 (Mon, 11 Feb 2013) $
 
 VEGAN RELEASE VERSIONS at http://cran.r-project.org/
 
+Version 2.0-6 (released February 11, 2013)
+
+	* merge 2420, 2425: cca cross references.
+	* merge 2417 thru 2419: predict & fitted upgraded for cca etc.  
+	* merge 2414: adjustment in predict.capscale.
+	* merge 2408: FAQ on random effects in cca etc.
+	* merge 2404,2411: refer Legendre & Legendre for the vegan rda
+	algorithm.
+	* merge 2934 (partial, mc): oecosimu handles nestedfun() returning
+	data.frame. Not merged: checking length of statistic when setting
+	its name.
+	* merge 2932,3: matching names in treedive() and treedist().
+	* merge 2388 (partial), 2389, 2390: faster protest, the part of
+	evaluating the test statistic hand crafted, because
+	parallelizations caused conflicts here.
+	* merge 2385, 7: protest print, faster sum of squares in procrustes. 
+	* merge 2384: new FAQ entries.
+	* merge 2383: remove alias to print.wcmdscale.
+	* merge 2374,2376,2378,2382: orditorp gains argument select
+	* merge 2372: ordilabel uses ordiArgAbsorber when plotting
+	* merge 2369: clamtest fix and border cases.
+	* merge 2367: rectify mantel, summary.anosim print.
+	* merge 2362: doc on r2357 for capscale.
+	* merge 2361: adjust imaginary axes similarly as real eigenvalue.
+	* merge 2358: print etc. for wcmdscale (no stressplot parts of
+	2358). 
+	* merge 2357: print additive constant in capscale.
+	* merge 2350: capscale species score scaling bug fix.
+	* merge 2349: multipart print bug fix.
+	* merge 2345: FAQ update (github, metric NMDS space).
+	* merge 2342: unused factor levels in envfit/factorfit.
+	* merge 2341 (partial): visible space in pdf of Rnw files.
+	* merge 2336: stricter monoMDS convergence criteria.
+	* merge 2334,5: scores.monoMDS,metaMDS updates.
+	* merge 2332: add plot.nestednodf().
+	* merge 2330,1: ordiR2step() gained arg 'R2scope' and handles
+	partial RDA.
+	* merge 2328,9: add 'legend' arg to msoplot().
+	* merge 2325: fix rotation of axes in 2-d plot.procrustes().
+	* merge 2319, 2323: clamtest bug fixes and clarifications.
+	* merge 2318: dispindmorista gains p-values of output.
+	
 Version 2.0-5 (released October 8, 2012)
 
 	* merge r2309: anova.cca.Rd edits.
diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd
index 427b7c3..c469d72 100644
--- a/inst/NEWS.Rd
+++ b/inst/NEWS.Rd
@@ -2,15 +2,129 @@
 \title{vegan News}
 \encoding{UTF-8}
 
+\section{Changes in version 2.0-6}{
+
+  \subsection{BUG FIXES}{
+
+    \itemize{
+
+      \item The species scores were scaled wrongly in
+      \code{capscale()}. They were scaled correctly only when Euclidean
+      distances were used, but usually \code{capscale()} is used with
+      non-Euclidean distances.  Most graphics will change and should be
+      redone.  The change of scaling mainly influences the spread of
+      species scores with respect to the site scores.
+
+      \item Function \code{clamtest()} failed to set the minimum
+      abundance threshold in some cases. In addition, the output was
+      wrong when some of the possible species groups were missing. Both
+      problems were reported by Richard Telford (Bergen, Norway).
+
+      \item Plotting an object fitted by \code{envfit()} would fail if
+      \code{p.max} was used and there were unused levels for one or
+      more factors. The unused levels could result from deletion of
+      observations with missing values or simply as the result of
+      supplying a subset of a larger data set to \code{envfit()}.
+
+      \item \code{multipart()} printed wrong information about the
+      analysis type (but did the analysis correctly). Reported by
+      Valerie Coudrain.
+
+      \item \code{oecosimu()} failed if its \code{nestedfun} returned a
+      data frame. A more fundamental fix will be in \pkg{vegan} 2.2-0,
+      where the structure of the \code{oecosimu()} result will change.
+
+      \item The plot of two-dimensional \code{procrustes()} solutions
+      often draw original axes in a wrong angle. The problem was
+      reported by Elizabeth Ottesen (MIT).
+
+      \item Function \code{treedive()} for functional or phylogenetic
+      diversity did not correctly match the species names between the
+      community data and species tree when the tree contained species
+      that did not occur in the data.  Related function
+      \code{treedist()} for phylogenetic distances did not try to match
+      the names at all.
+
+    }
+ 
+  } % bug fixes
+
+  \subsection{NEW FEATURES}{
+
+    \itemize{
+
+      \item The output of \code{capscale()} displays the value of the
+      additive constant when argument \code{add = TRUE} was used.
+      
+      \item \code{fitted()} functions for \code{cca()}, \code{rda()} and
+      \code{capscale()} can now return conditioned (partial) component
+      of the response: Argument \code{model} gained a new alternative
+      \code{model = "pCCA"}. 
+
+      \item \code{dispindmorisita()} output gained a new column for
+      Chi-squared based probabilities that the null hypothesis (random
+      distribution) is true.
+
+      \item \code{metaMDS()} and \code{monoMDS()} have new default
+      convergence criteria. Most importantly, scale factor of the
+      gradient (\code{sfgrmin}) is stricter. The former limit was too
+      slack with large data sets and iterations stopped early without
+      getting close to the solution. In addition, \code{scores()}
+      ignore now requests to dimensions beyond those calculated
+      instead of failing, and \code{scores()} for \code{metaMDS()}
+      results do not drop dimensions.
+
+      \item \code{msoplot()} gained \code{legend} argument for
+      positioning the legend.
+
+      \item Nestedness function \code{nestednodf()} gained a \code{plot}
+      method.
+
+      \item \code{ordiR2step()} gained new argument \code{R2scope}
+      (defaults \code{TRUE}) which can be used to turn off the criterion
+      of stopping when the adjusted \eqn{R^2}{R-squared} of the current
+      model exceeds that of the scope.  This option allows model
+      building when the \code{scope} would be overdetermined (number of
+      predictors higher than number of observations).
+
+      \code{ordiR2step()} now handles partial redundancy analysis
+      (pRDA).
+
+      \item \code{orditorp()} gained argument \code{select} to select
+      the rows or columns of the results to display.
+
+      \item \code{protest()} prints the standardized residual statistic
+      \eqn{m_{12}^2}{squared m12} in addition to the squared Procrustes
+      correlation \eqn{R^2}{R-squared}.  Both were calculated, but only
+      the latter was displayed.
+
+      Permutation tests are much faster in \code{protest()}. Instead
+      of calling repeatedly \code{procrustes()}, the goodness of fit
+      statistic is evaluated within the function. 
+
+      \item \code{wcmdscale()} gained methods for \code{print},
+      \code{plot} etc. of the results. These methods are only used if
+      the full \code{wcmdscale} result is returned with, e.g., argument
+      \code{eig = TRUE}. The default is still to return only a matrix of
+      scores similarly as the standard \R function \code{cmdscale()},
+      and in that case the new methods are not used.
+
+    }
+
+  } % new features
+   
+
+} % end 2.0-6
+
 \section{Changes in version 2.0-5}{
 
   \subsection{BUG FIXES}{
 
     \itemize{
 
-      \item \code{anova(<cca_object>, ...)} failed with \code{by =
-      "axis"} and \code{by = "term"}. The bug was reported by Dr Sven
-      Neulinger (Christian Albrecht University, Kiel, Germany).
+      \item \code{anova(<cca_object>, ...)} failed with
+      \code{by = "axis"} and \code{by = "term"}. The bug was reported by
+      Dr Sven Neulinger (Christian Albrecht University, Kiel, Germany).
 
       \item \code{radlattice} did not honour argument \code{BIC = TRUE},
       but always displayed AIC.
@@ -116,8 +230,8 @@
 
       \item \code{envfit} failed with unused factor levels.
 
-      \item \code{predict} for \code{cca} results with \code{type =
-        "response"} or \code{type = "working"} failed with
+      \item \code{predict} for \code{cca} results with
+        \code{type = "response"} or \code{type = "working"} failed with
         \code{newdata} if the number of rows did not match with the
         original data.  Now the \code{newdata} is ignored if it has a
         wrong number of rows.  The number of rows must match because
@@ -293,10 +407,10 @@
      \item \code{stressplot} and \code{goodness} sometimes failed when
      \code{metaMDS} was based on \code{isoMDS} (\pkg{MASS} package)
      because \code{metaMDSdist} did not use the same defaults for
-     step-across (extended) dissimilarities as \code{metaMDS(...,
-     engine = "isoMDS")}. The change of defaults can also influence
-     triggering of step-across in \code{capscale(..., metaMDSdist =
-     TRUE)}.
+     step-across (extended) dissimilarities as
+     \code{metaMDS(..., engine = "isoMDS")}. The change of defaults can
+     also influence triggering of step-across in
+     \code{capscale(..., metaMDSdist = TRUE)}.
 
      \item \code{adonis} contained a minor bug resulting from
      incomplete implementation of a speed-up that did not affect the
diff --git a/inst/doc/FAQ-vegan.pdf b/inst/doc/FAQ-vegan.pdf
index 985f70c..0539b37 100644
Binary files a/inst/doc/FAQ-vegan.pdf and b/inst/doc/FAQ-vegan.pdf differ
diff --git a/inst/doc/FAQ-vegan.texi b/inst/doc/FAQ-vegan.texi
index bcb66f6..005103b 100644
--- a/inst/doc/FAQ-vegan.texi
+++ b/inst/doc/FAQ-vegan.texi
@@ -8,7 +8,7 @@
 @setfilename FAQ- at pkg{vegan}.info
 @settitle @pkg{vegan} FAQ
 @setchapternewpage on
- at set FAQ_YEAR 2012
+ at set FAQ_YEAR 2013
 @afourpaper
 @c %**end of header
 
@@ -16,7 +16,7 @@
 @ifnottex
 This document contains answers to some of the most frequently asked
 questions about R package @pkg{vegan}. 
-This is version of $Date: 2012-05-27 18:15:38 +0300 (Sun, 27 May 2012) $.
+This is version of $Date: 2013-02-07 19:55:39 +0200 (Thu, 07 Feb 2013) $.
 @end ifnottex
 
 @quotation
@@ -26,7 +26,7 @@ License. To view a copy of this license, visit
 Creative Commons, 543 Howard Street, 5th Floor, San Francisco,
 California, 94105, USA.
 
-Copyright @copyright{} 2008-2012 Jari Oksanen
+Copyright @copyright{} 2008-2013 Jari Oksanen
 @end quotation
 @end copying
 
@@ -40,7 +40,7 @@ Copyright @copyright{} 2008-2012 Jari Oksanen
 @titlepage
 @title @pkg{vegan} @acronym{FAQ}
 @subtitle Frequently Asked Questions on R package @pkg{vegan}
- at subtitle Version of $Date: 2012-05-27 18:15:38 +0300 (Sun, 27 May 2012) $ 
+ at subtitle Version of $Date: 2013-02-07 19:55:39 +0200 (Thu, 07 Feb 2013) $ 
 @author Jari Oksanen
 
 @vskip 0pt plus 1fill
@@ -81,9 +81,11 @@ Copyright @copyright{} 2008-2012 Jari Oksanen
 * How to cite @pkg{vegan}?::    
 * How to build @pkg{vegan} from sources?::  
 * Are there binaries for devel versions?::  
+* Can I use @pkg{vegan} in Mac?::  
 * How to report a bug in @pkg{vegan}?::  
 * Is it a bug or a feature?::   
 * Can I contribute to @pkg{vegan}?::  
+* Can I have write access to @pkg{vegan} repository?::  
 @end menu
 
 @node What is @pkg{vegan}?, What is R?, Introduction, Introduction
@@ -230,7 +232,7 @@ documentation.  @pkg{Vegan} contains source files in C and @acronym{FORTRAN},
 and you need appropriate compilers (which may need more work in Windows
 and MacOS X).
 
- at node Are there binaries for devel versions?, How to report a bug in @pkg{vegan}?, How to build @pkg{vegan} from sources?, Introduction
+ at node Are there binaries for devel versions?, Can I use @pkg{vegan} in Mac?, How to build @pkg{vegan} from sources?, Introduction
 @section Are there binaries for devel versions?
 
 @uref{http://r-forge.r-project.org/projects/vegan/,,R-Forge} runs daily
@@ -241,7 +243,20 @@ packages within R with command
 If you use GUI menu entry, you must select or define the R-Forge
 repository. 
 
- at node How to report a bug in @pkg{vegan}?, Is it a bug or a feature?, Are there binaries for devel versions?, Introduction
+ at node Can I use @pkg{vegan} in Mac?, How to report a bug in @pkg{vegan}?, Are there binaries for devel versions?, Introduction
+ at section Can I use @pkg{vegan} in Mac?
+
+Yes, you can, and @pkg{vegan} binaries are available for Mac through
+ at uref{http://cran.r-project.org,,CRAN}. However, in some cases you may
+need to install extra tools packages available in
+ at uref{http://cran.r-project.org/bin/macosx/tools/,,MacOS tools} pages:
+If you use function such as @code{orditkplot} that need @code{Tcl/Tk}
+you may need to install @code{tcltk} package.  If you use @pkg{vegan}
+binaries from other places than from
+ at uref{http://cran.r-project.org,,CRAN}, you may also need to install
+ at code{gfortran} package.
+
+ at node How to report a bug in @pkg{vegan}?, Is it a bug or a feature?, Can I use @pkg{vegan} in Mac?, Introduction
 @section How to report a bug in @pkg{vegan}?
 
 If you think you have found a bug in @pkg{vegan}, you should report it to
@@ -273,7 +288,7 @@ instance, function @code{vegdist} always calculates quantitative
 indices (when this is possible). If you expect it to calculate a
 binary index, you should use argument @code{binary = TRUE}.
 
- at node Can I contribute to @pkg{vegan}?,  , Is it a bug or a feature?, Introduction
+ at node Can I contribute to @pkg{vegan}?, Can I have write access to @pkg{vegan} repository?, Is it a bug or a feature?, Introduction
 @section Can I contribute to @pkg{vegan}?
 
 @pkg{Vegan} is dependent on user contribution.  All feedback is welcome.  If
@@ -288,21 +303,39 @@ Contributed code and functions are welcome and more certain to be
 included than mere requests.  However, not all functions will be added,
 but I they must be suitable for @pkg{vegan}.  We also audit the code, and
 typically we edit the code in @pkg{vegan} style for easier maintenance.  All
-included contributions will be credited.  
+included contributions will be credited.
+
+ at node Can I have write access to @pkg{vegan} repository?,  , Can I contribute to @pkg{vegan}?, Introduction
+ at section Can I have write access to @pkg{vegan} repository?
+
+The @pkg{vegan} development happens mainly in
+ at uref{http://r-forge.r-project.org/,,R-Forge} which uses subversion for
+version control.  Subversion is a centralized version control system,
+and only @pkg{vegan} developers can have write access to the central
+repository. However, the @uref{http://r-forge.r-project.org/,,R-Forge}
+is mirrored in
+ at uref{https://github.com/jarioksa/vegan.git,,GitHub}. This is a
+distributed version control system and freely accessible for anybody. We
+suggest you develop your own ideas in
+ at uref{https://github.com/jarioksa/vegan.git,,GitHub} and send a pull
+request to us for incorporating your changes in @pkg{vegan} releases.
 
 @node Ordination, Other analysis methods , Introduction, Top
 @chapter Ordination
 
 @menu
-* I have only numeric and positive data but @pkg{vegan} still complaints::  
+* I have only numeric and positive data but @pkg{vegan} still complains::  
 * Can I analyse binary or cover class data?::  
 * Why dissimilarities in @pkg{vegan} differ from other sources?::  
 * Why NMDS stress is sometimes 0.1 and sometimes 10?::  
 * I get zero stress but no convergent solutions in @code{metaMDS}::  
 * Zero dissimilarities in isoMDS::  
+* I have heard that you cannot fit environmental vectors or surfaces to NMDS results which only have rank-order scores::  
+* Where can I find numerical scores of ordination axes?::  
 * How the RDA results are scaled?::  
 * cca fails with ``data.frame expected'' or ``"site.env" missing''::  
 * Variance explained by ordination axes::  
+* Can I have random effects in constrained ordination or in @code{adonis}?::  
 * Is it possible to have passive points in ordination?::  
 * Class variables and dummies::  
 * How are environmental arrows scaled?::  
@@ -316,9 +349,9 @@ included contributions will be credited.
 * Can I zoom into an ordination plot?::  
 @end menu
 
- at node  I have only numeric and positive data but @pkg{vegan} still complaints, Can I analyse binary or cover class data?, Ordination, Ordination
+ at node  I have only numeric and positive data but @pkg{vegan} still complains, Can I analyse binary or cover class data?, Ordination, Ordination
 @comment  node-name,  next,  previous,  up
- at section I have only numeric and positive data but @pkg{vegan} still complaints
+ at section I have only numeric and positive data but @pkg{vegan} still complains
 
 You are wrong! Computers are painfully pedantic, and if they find
 non-numeric or negative data entries, you really have them. Check your
@@ -329,7 +362,7 @@ were interpreted as data (check argument @code{header = TRUE} in reading
 the data). Another common reason is that you had empty cells in your
 input data, and these were interpreted as missing values.
 
- at node Can I analyse binary or cover class data?, Why dissimilarities in @pkg{vegan} differ from other sources?, I have only numeric and positive data but @pkg{vegan} still complaints, Ordination
+ at node Can I analyse binary or cover class data?, Why dissimilarities in @pkg{vegan} differ from other sources?, I have only numeric and positive data but @pkg{vegan} still complains, Ordination
 @section Can I analyse binary or cover class data?
 
 Yes. Most @pkg{vegan} methods can handle binary data or cover abundance data.
@@ -388,7 +421,7 @@ However, higher number of dimensions can be used in metric scaling, both
 with @code{monoMDS} and in principal coordinates analysis
 (@code{cmdscale} in @pkg{stats}, @code{wcmdscale} in @pkg{vegan}).
 
- at node Zero dissimilarities in isoMDS, How the RDA results are scaled?, I get zero stress but no convergent solutions in @code{metaMDS}, Ordination
+ at node Zero dissimilarities in isoMDS, I have heard that you cannot fit environmental vectors or surfaces to NMDS results which only have rank-order scores, I get zero stress but no convergent solutions in @code{metaMDS}, Ordination
 @section Zero dissimilarities in isoMDS
 
 Function @code{metaMDS} uses function @code{monoMDS} as its default
@@ -406,7 +439,36 @@ non-unique sites can have zero dissimilarity, and you have to resort to
 the kluge (or work harder with your data). Usually it is better to use
 @code{monoMDS}.
 
- at node How the RDA results are scaled?, cca fails with ``data.frame expected'' or ``"site.env" missing'', Zero dissimilarities in isoMDS, Ordination
+ at node I have heard that you cannot fit environmental vectors or surfaces to NMDS results which only have rank-order scores, Where can I find numerical scores of ordination axes?, Zero dissimilarities in isoMDS, Ordination
+ at section I have heard that you cannot fit environmental vectors or surfaces to NMDS results which only have rank-order scores
+
+Claims like this have indeed been at large in the Internet, but they are
+based on grave misunderstanding and are plainly wrong. @acronym{NMDS}
+ordination results are strictly metric, and in @pkg{vegan}
+ at code{metaMDS} and @code{monoMDS} they are even strictly Euclidean. The
+method is called ``non-metric'' because the Euclidean distances in
+ordination space have a non-metric rank-order relationship to community
+dissimilarities. You can inspect this non-linear step curve using
+function @code{stressplot} in @pkg{vegan}. Because the ordination scores
+are strictly Euclidean, it is correct to use @pkg{vegan} functions
+ at code{envfit} and @code{ordisurf} with @acronym{NMDS} results.
+
+ at node Where can I find numerical scores of ordination axes?, How the RDA results are scaled?, I have heard that you cannot fit environmental vectors or surfaces to NMDS results which only have rank-order scores, Ordination
+ at section Where can I find numerical scores of ordination axes?
+
+Normally you can use function @code{scores} to extract ordination scores
+for any ordination method. The @code{scores} function can also find
+ordination scores for many non- at pkg{vegan} functions such as for
+ at code{prcomp} and @code{princomp} and for some @pkg{ade4} functions.
+
+In some cases the ordination result object stores raw scores, and
+the axes are also scaled appropriate when you access them with
+ at code{scores}.  For instance, in @code{cca} and @code{rda} the
+ordination object has only so-called normalized scores, and they are
+scaled for ordination plots or for other use when they are accessed with
+ at code{scores}. 
+
+ at node How the RDA results are scaled?, cca fails with ``data.frame expected'' or ``"site.env" missing'', Where can I find numerical scores of ordination axes?, Ordination
 @section How the @acronym{RDA} results are scaled?
 
 The scaling or @acronym{RDA} results indeed differ from most other
@@ -427,7 +489,7 @@ can use the @pkg{vegan} version using command @code{vegan::cca()}. If
 you do not need package @pkg{ade4}, you can detach it with command
 @code{detach(package:ade4)}.
 
- at node Variance explained by ordination axes, Is it possible to have passive points in ordination?, cca fails with ``data.frame expected'' or ``"site.env" missing'', Ordination
+ at node Variance explained by ordination axes, Can I have random effects in constrained ordination or in @code{adonis}?, cca fails with ``data.frame expected'' or ``"site.env" missing'', Ordination
 @section Variance explained by ordination axes.
 
 In general, @pkg{vegan} does not directly give any statistics on the
@@ -486,7 +548,46 @@ nonlinear fit and gives this statistic.
 
 @end itemize
 
- at node Is it possible to have passive points in ordination?, Class variables and dummies, Variance explained by ordination axes, Ordination
+ at node Can I have random effects in constrained ordination or in @code{adonis}?, Is it possible to have passive points in ordination?, Variance explained by ordination axes, Ordination
+ at section Can I have random effects in constrained ordination or in @code{adonis}?
+
+No. Strictly speaking, this is impossible. However, you can define
+models that respond to similar goals as random effects models, although
+they strictly speaking use only fixed effects.
+
+Constrained ordination functions @code{cca}, @code{rda} and
+ at code{capscale} can have @code{Condition()} terms in their formula. The
+ at code{Condition()} define partial terms that are fitted before other
+constraints and can be used to remove the effects of background
+variables, and their contribution to decomposing inertia (variance) is
+reported separately.  These partial terms are often regarded as similar
+to random effects, but they are still fitted in the same way as other
+terms and strictly speaking they are fixed terms.
+
+Function @code{adonis} evaluates terms sequentially. In a model with
+right-hand-side @code{~ A + B} the effects of @code{A} are evaluated
+first, and the effects of @code{B} after removing the effects of
+ at code{A}. Sequential tests are also available in @code{anova} function
+for constrained ordination results by setting argument @code{by = "term"}.  
+In this way, the first terms can serve in a similar role as
+random effects, although they are fitted in the same way as all other
+terms, and strictly speaking they are fixed terms.
+
+The permutation tests can usually have a @code{strata} argument which
+restricts the permutations within levels of a factor given in the
+argument. This can be used to restrict the permutations within levels of
+factor regarded as a random term.  More structured permutations are
+available with the @pkg{permute} package.
+
+A major reason why real random effects models are impossible in most
+ at pkg{vegan} functions is that their tests are based on the permutation
+of the data. The data are given, that is fixed, and therefore
+permutation tests are basically tests of fixed terms on fixed data.
+Random effect terms would require permutations of data with a random
+component instead of the given, fixed data, and such tests are not
+available in @pkg{vegan}.
+
+ at node Is it possible to have passive points in ordination?, Class variables and dummies, Can I have random effects in constrained ordination or in @code{adonis}?, Ordination
 @section Is it possible to have passive points in ordination?
 
 @pkg{Vegan} does not have a concept of passive points, or a point that should
diff --git a/inst/doc/NEWS.html b/inst/doc/NEWS.html
index c479a71..35e42fa 100644
--- a/inst/doc/NEWS.html
+++ b/inst/doc/NEWS.html
@@ -8,19 +8,147 @@
 
 <h2>vegan News</h2>
 
-<h3>Changes in version 2.0-5</h3>
-
+<h3>Changes in version 2.0-6</h3>
 
 
 
 <h4>BUG FIXES</h4>
 
 
+<ul>
+<li><p> The species scores were scaled wrongly in
+<code>capscale()</code>. They were scaled correctly only when Euclidean
+distances were used, but usually <code>capscale()</code> is used with
+non-Euclidean distances.  Most graphics will change and should be
+redone.  The change of scaling mainly influences the spread of
+species scores with respect to the site scores.
+</p>
+</li>
+<li><p> Function <code>clamtest()</code> failed to set the minimum
+abundance threshold in some cases. In addition, the output was
+wrong when some of the possible species groups were missing. Both
+problems were reported by Richard Telford (Bergen, Norway).
+</p>
+</li>
+<li><p> Plotting an object fitted by <code>envfit()</code> would fail if
+<code>p.max</code> was used and there were unused levels for one or
+more factors. The unused levels could result from deletion of
+observations with missing values or simply as the result of
+supplying a subset of a larger data set to <code>envfit()</code>.
+</p>
+</li>
+<li> <p><code>multipart()</code> printed wrong information about the
+analysis type (but did the analysis correctly). Reported by
+Valerie Coudrain.
+</p>
+</li>
+<li> <p><code>oecosimu()</code> failed if its <code>nestedfun</code> returned a
+data frame. A more fundamental fix will be in <span class="pkg">vegan</span> 2.2-0,
+where the structure of the <code>oecosimu()</code> result will change.
+</p>
+</li>
+<li><p> The plot of two-dimensional <code>procrustes()</code> solutions
+often draw original axes in a wrong angle. The problem was
+reported by Elizabeth Ottesen (MIT).
+</p>
+</li>
+<li><p> Function <code>treedive()</code> for functional or phylogenetic
+diversity did not correctly match the species names between the
+community data and species tree when the tree contained species
+that did not occur in the data.  Related function
+<code>treedist()</code> for phylogenetic distances did not try to match
+the names at all.
+</p>
+</li></ul>
+
+ 
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The output of <code>capscale()</code> displays the value of the
+additive constant when argument <code>add = TRUE</code> was used.
+</p>
+</li>
+<li> <p><code>fitted()</code> functions for <code>cca()</code>, <code>rda()</code> and
+<code>capscale()</code> can now return conditioned (partial) component
+of the response: Argument <code>model</code> gained a new alternative
+<code>model = "pCCA"</code>. 
+</p>
+</li>
+<li> <p><code>dispindmorisita()</code> output gained a new column for
+Chi-squared based probabilities that the null hypothesis (random
+distribution) is true.
+</p>
+</li>
+<li> <p><code>metaMDS()</code> and <code>monoMDS()</code> have new default
+convergence criteria. Most importantly, scale factor of the
+gradient (<code>sfgrmin</code>) is stricter. The former limit was too
+slack with large data sets and iterations stopped early without
+getting close to the solution. In addition, <code>scores()</code>
+ignore now requests to dimensions beyond those calculated
+instead of failing, and <code>scores()</code> for <code>metaMDS()</code>
+results do not drop dimensions.
+</p>
+</li>
+<li> <p><code>msoplot()</code> gained <code>legend</code> argument for
+positioning the legend.
+</p>
+</li>
+<li><p> Nestedness function <code>nestednodf()</code> gained a <code>plot</code>
+method.
+</p>
+</li>
+<li> <p><code>ordiR2step()</code> gained new argument <code>R2scope</code>
+(defaults <code>TRUE</code>) which can be used to turn off the criterion
+of stopping when the adjusted <i>R-squared</i> of the current
+model exceeds that of the scope.  This option allows model
+building when the <code>scope</code> would be overdetermined (number of
+predictors higher than number of observations).
+</p>
+<p><code>ordiR2step()</code> now handles partial redundancy analysis
+(pRDA).
+</p>
+</li>
+<li> <p><code>orditorp()</code> gained argument <code>select</code> to select
+the rows or columns of the results to display.
+</p>
+</li>
+<li> <p><code>protest()</code> prints the standardized residual statistic
+<i>squared m12</i> in addition to the squared Procrustes
+correlation <i>R-squared</i>.  Both were calculated, but only
+the latter was displayed.
+</p>
+<p>Permutation tests are much faster in <code>protest()</code>. Instead
+of calling repeatedly <code>procrustes()</code>, the goodness of fit
+statistic is evaluated within the function. 
+</p>
+</li>
+<li> <p><code>wcmdscale()</code> gained methods for <code>print</code>,
+<code>plot</code> etc. of the results. These methods are only used if
+the full <code>wcmdscale</code> result is returned with, e.g., argument
+<code>eig = TRUE</code>. The default is still to return only a matrix of
+scores similarly as the standard <font face="Courier New,Courier" color="#666666"><b>R</b></font> function <code>cmdscale()</code>,
+and in that case the new methods are not used.
+</p>
+</li></ul>
+
+ 
+
+
+<h3>Changes in version 2.0-5</h3>
+
+
+
+<h4>BUG FIXES</h4>
+
 
 <ul>
-<li> <p><code>anova(<cca_object>, ...)</code> failed with <code>by =
-      "axis"</code> and <code>by = "term"</code>. The bug was reported by Dr Sven
-Neulinger (Christian Albrecht University, Kiel, Germany).
+<li> <p><code>anova(<cca_object>, ...)</code> failed with
+<code>by = "axis"</code> and <code>by = "term"</code>. The bug was reported by
+Dr Sven Neulinger (Christian Albrecht University, Kiel, Germany).
 </p>
 </li>
 <li> <p><code>radlattice</code> did not honour argument <code>BIC = TRUE</code>,
@@ -34,7 +162,6 @@ but always displayed AIC.
 <h4>NEW FUNCTIONS</h4>
 
 
-
 <ul>
 <li><p> Most <span class="pkg">vegan</span> functions with permutation tests have now a
 <code>density</code> method that can be used to find empirical
@@ -68,7 +195,6 @@ also extrapolate.
 <h4>NEW FEATURES</h4>
 
 
-
 <ul>
 <li><p> Labels can now be set in the <code>plot</code> of <code>envfit</code>
 results. The labels must be given in the same order that the
@@ -98,7 +224,6 @@ in the data.  All functions now have methods <code>AIC</code>,
 <h4>INSTALLATION AND BUILDING</h4>
 
 
-
 <ul>
 <li><p> Building of <span class="pkg">vegan</span> vignettes failed with the latest
 version of LaTeX (TeXLive 2012).
@@ -121,11 +246,9 @@ These errors and warnings were triggered by internal changes in
 
 
 
-
 <h4>BUG FIXES</h4>
 
 
-
 <ul>
 <li> <p><code>adipart</code> assumed constant gamma diversity in
 simulations when assessing the <i>P</i>-value.  This could give
@@ -148,8 +271,8 @@ et al. 2011 and <span class="pkg">vegan</span> help page.
 <li> <p><code>envfit</code> failed with unused factor levels.
 </p>
 </li>
-<li> <p><code>predict</code> for <code>cca</code> results with <code>type =
-        "response"</code> or <code>type = "working"</code> failed with
+<li> <p><code>predict</code> for <code>cca</code> results with
+<code>type = "response"</code> or <code>type = "working"</code> failed with
 <code>newdata</code> if the number of rows did not match with the
 original data.  Now the <code>newdata</code> is ignored if it has a
 wrong number of rows.  The number of rows must match because
@@ -166,7 +289,6 @@ Reported by Glenn De'ath.
 <h4>NEW FEATURES</h4>
 
 
-
 <ul>
 <li><p> Functions for diversity partitioning (<code>adipart</code>,
 <code>hiersimu</code> and <code>multipart</code>) have now <code>formula</code>
@@ -237,11 +359,9 @@ argument can be used only with one set of points.
 
 
 
-
 <h4>NEW FUNCTIONS</h4>
 
 
-
 <ul>
 <li><p> Added new nestedness functions <code>nestedbetasor</code> and
 <code>nestedbetajac</code> that implement multiple-site dissimilarity
@@ -273,7 +393,6 @@ by Eduard Szöcs (Uni Landau, Germany).
 <h4>BUG FIXES</h4>
 
 
-
 <ul>
 <li> <p><code>betadisper()</code> failed when the <code>groups</code> was a
 factor with empty levels.
@@ -305,7 +424,6 @@ was reported as an error in <code>ordiplot</code> in
 <h4>NEW FEATURES</h4>
 
 
-
 <ul>
 <li> <p><code>metaMDS</code> argument <code>noshare = 0</code> is now
 regarded as a numeric threshold that always triggers extended
@@ -347,11 +465,9 @@ USA).
 
 
 
-
 <h4>BUG FIXES</h4>
 
 
-
 <ul>
 <li><p> Function <code>capscale</code> failed if constrained component
 had zero rank. This happened most likely in partial models when
@@ -366,10 +482,10 @@ mailing list</a>.
 <li> <p><code>stressplot</code> and <code>goodness</code> sometimes failed when
 <code>metaMDS</code> was based on <code>isoMDS</code> (<span class="pkg">MASS</span> package)
 because <code>metaMDSdist</code> did not use the same defaults for
-step-across (extended) dissimilarities as <code>metaMDS(...,
-     engine = "isoMDS")</code>. The change of defaults can also influence
-triggering of step-across in <code>capscale(..., metaMDSdist =
-     TRUE)</code>.
+step-across (extended) dissimilarities as
+<code>metaMDS(..., engine = "isoMDS")</code>. The change of defaults can
+also influence triggering of step-across in
+<code>capscale(..., metaMDSdist = TRUE)</code>.
 </p>
 </li>
 <li> <p><code>adonis</code> contained a minor bug resulting from
@@ -388,7 +504,6 @@ realised. Reported by Nicholas Lewin-Koh.
 <h4>NEW FEATURES</h4>
 
 
-
 <ul>
 <li> <p><code>ordiarrows</code> and <code>ordisegments</code> gained argument
 <code>order.by</code> that gives a variable to sort points within
@@ -409,11 +524,9 @@ with no <code>groups</code> they are the LC scores.
 
 
 
-
 <h4>NEW FUNCTIONS</h4>
 
 
-
 <ul>
 <li> <p><code>clamtest</code>: new function to classify species as
 generalists and specialists in two distinct habitats (CLAM test of
@@ -449,7 +562,6 @@ and was developed with the consultation of Brian Inouye.
 <h4>BUG FIXES</h4>
 
 
-
 <ul>
 <li><p> Function <code>meandist</code> could scramble items and give
 wrong results, especially when the <code>grouping</code> was
@@ -488,7 +600,6 @@ annoying warnings.
 <h4>ANALYSES</h4>
 
 
-
 <ul>
 <li> <p><code>nesteddisc</code> is slacker and hence faster when trying
 to optimize the statistic for tied column frequencies. Tracing
@@ -504,11 +615,9 @@ early in tries, and the results are equally good in most cases.
 
 
 
-
 <h4>GENERAL</h4>
 
 
-
 <ul>
 <li><p> Peter Minchin joins the <span class="pkg">vegan</span> team.
 </p>
@@ -539,7 +648,6 @@ feature.
 <h4>NEW FUNCTIONS</h4>
 
 
-
 <ul>
 <li> <p><code>monoMDS</code>: a new function for non-metric
 multidimensional scaling (NMDS). This function replaces
@@ -595,7 +703,6 @@ models by Dengler (<EM>J. Biogeogr.</EM> 36, 728-744; 2009).
 <h4>NEW FEATURES</h4>
 
 
-
 <ul>
 <li> <p><code>adonis</code>, <code>anosim</code>, <code>meandist</code> and
 <code>mrpp</code> warn on negative dissimilarities, and
@@ -637,7 +744,6 @@ observations.
 <h4>DEPRECATED AND DEFUNCT</h4>
 
 
-
 <ul>
 <li> <p><code>metaMDSrotate</code> was replaced with <code>MDSrotate</code>
 that can also handle the results of <code>monoMDS</code>.
@@ -656,7 +762,6 @@ code in <span class="pkg">vegan</span> should instead depend on <span class="pkg
 <h4>ANALYSES</h4>
 
 
-
 <ul>
 <li> <p><code>treeheight</code> uses much snappier code. The results
 should be unchanged.
diff --git a/inst/doc/decision-vegan.pdf b/inst/doc/decision-vegan.pdf
index 8844aa5..1545dbf 100644
Binary files a/inst/doc/decision-vegan.pdf and b/inst/doc/decision-vegan.pdf differ
diff --git a/inst/doc/decision-vegan.tex b/inst/doc/decision-vegan.tex
index 52ca7cc..eb0facd 100644
--- a/inst/doc/decision-vegan.tex
+++ b/inst/doc/decision-vegan.tex
@@ -23,8 +23,8 @@ another document.
 %% hijack Address for version info
 \Address{$ $Id: decision-vegan.Rnw 1709 2011-08-10 15:48:21Z jarioksa $ $
   processed with vegan
-2.0-5
-in R Under development (unstable) (2012-10-08 r60901) on \today}
+2.0-6
+in R Under development (unstable) (2013-02-10 r61900) on \today}
 \Footername{About this version}
 
 %% need no \usepackage{Sweave.sty}
@@ -500,17 +500,17 @@ Call: cca(formula = varespec[i, ] ~ Al + K, data = varechem)
 
               Inertia Proportion Rank
 Total         2.08320    1.00000     
-Constrained   0.13087    0.06282    2
-Unconstrained 1.95233    0.93718   21
+Constrained   0.15362    0.07374    2
+Unconstrained 1.92958    0.92626   21
 Inertia is mean squared contingency coefficient 
 
 Eigenvalues for constrained axes:
    CCA1    CCA2 
-0.07534 0.05553 
+0.10630 0.04732 
 
 Eigenvalues for unconstrained axes:
     CA1     CA2     CA3     CA4     CA5     CA6     CA7     CA8 
-0.49651 0.34903 0.23403 0.18364 0.17438 0.11899 0.10508 0.08591 
+0.49464 0.32096 0.21594 0.18515 0.17457 0.11062 0.10434 0.08368 
 (Showed only 8 of all 21 unconstrained eigenvalues)
 \end{Soutput}
 \end{Schunk}
@@ -537,11 +537,11 @@ R> proc <- procrustes(scores(tmp1, dis="lc", choi=1:14), scores(tmp2, dis="lc",
 R> max(residuals(proc))
 \end{Sinput}
 \begin{Soutput}
-[1] 2.572443e-14
+[1] 2.646997e-14
 \end{Soutput}
 \end{Schunk}
 In \code{cca} the difference would be somewhat larger than now
-observed 2.5724e-14 because site
+observed 2.647e-14 because site
 weights used for environmental variables are shuffled with the species
 data.
 
diff --git a/inst/doc/diversity-vegan.Rnw b/inst/doc/diversity-vegan.Rnw
index 2195ec3..3b8c590 100644
--- a/inst/doc/diversity-vegan.Rnw
+++ b/inst/doc/diversity-vegan.Rnw
@@ -30,7 +30,7 @@
   pool}
 
 %% misuse next for scm data
-\Address{$ $Id: diversity-vegan.Rnw 2259 2012-08-23 15:13:58Z jarioksa $ $
+\Address{$ $Id: diversity-vegan.Rnw 2346 2013-01-07 11:42:36Z jarioksa $ $
   processed with vegan \Sexpr{packageDescription("vegan", field="Version")}
   in \Sexpr{R.version.string} on \today}
 \Footername{About this version}
@@ -49,7 +49,7 @@ options("prompt" = "R> ", "continue" = "+  ")
 
 \tableofcontents
 
- ~\\[2ex]
+
 \noindent The \pkg{vegan} package has two major components:
 multivariate analysis (mainly ordination), and methods for diversity
 analysis of ecological communities.  This document gives an
diff --git a/inst/doc/diversity-vegan.pdf b/inst/doc/diversity-vegan.pdf
index 8c4b1ed..11eaff4 100644
Binary files a/inst/doc/diversity-vegan.pdf and b/inst/doc/diversity-vegan.pdf differ
diff --git a/inst/doc/diversity-vegan.tex b/inst/doc/diversity-vegan.tex
index 4678e6c..3ed3613 100644
--- a/inst/doc/diversity-vegan.tex
+++ b/inst/doc/diversity-vegan.tex
@@ -30,9 +30,9 @@
   pool}
 
 %% misuse next for scm data
-\Address{$ $Id: diversity-vegan.Rnw 2259 2012-08-23 15:13:58Z jarioksa $ $
-  processed with vegan 2.0-5
-  in R Under development (unstable) (2012-10-08 r60901) on \today}
+\Address{$ $Id: diversity-vegan.Rnw 2346 2013-01-07 11:42:36Z jarioksa $ $
+  processed with vegan 2.0-6
+  in R Under development (unstable) (2013-02-10 r61900) on \today}
 \Footername{About this version}
 
 %% need no \usepackage{Sweave}
@@ -42,7 +42,7 @@
 
 \tableofcontents
 
- ~\\[2ex]
+
 \noindent The \pkg{vegan} package has two major components:
 multivariate analysis (mainly ordination), and methods for diversity
 analysis of ecological communities.  This document gives an
@@ -352,16 +352,16 @@ R> fish
 \end{Sinput}
 \begin{Soutput}
 Fisher log series model
-No. of species: 100 
+No. of species: 102 
 
       Estimate Std. Error
-alpha   40.996      5.183
+alpha   44.064     5.5838
 \end{Soutput}
 \end{Schunk}
 \begin{SCfigure}
 \includegraphics{diversity-vegan-018}
 \caption{Fisher's log-series fitted to one randomly selected site
-  (20).}
+  (41).}
 \label{fig:fisher}
 \end{SCfigure}
 We already saw $\alpha$ as a diversity index.  Now we also obtained
@@ -379,7 +379,7 @@ R> confint(fish)
 \end{Sinput}
 \begin{Soutput}
    2.5 %   97.5 % 
-31.84517 52.29146 
+34.21748 56.25208 
 \end{Soutput}
 \end{Schunk}
 
@@ -403,7 +403,7 @@ the lower octave.
 Function \code{prestondistr} directly
 maximizes truncated log-normal likelihood without binning data, and it
 is the recommended alternative.  Log-normal models  usually fit poorly
-to the BCI data, but here our random plot (number 20):
+to the BCI data, but here our random plot (number 41):
 \begin{Schunk}
 \begin{Sinput}
 R> prestondistr(BCI[k,])
@@ -411,15 +411,15 @@ R> prestondistr(BCI[k,])
 \begin{Soutput}
 Preston lognormal model
 Method: maximized likelihood to log2 abundances 
-No. of species: 100 
+No. of species: 102 
 
       mode      width         S0 
- 0.9849822  1.6642110 27.1323499 
+ 0.6954283  1.7260910 28.1654616 
 
 Frequencies by Octave
-                0        1        2      3         4        5         6
-Observed 19.00000 29.00000 22.00000 12.500 13.500000 3.000000 1.0000000
-Fitted   22.77303 27.13125 22.52739 13.036  5.257389 1.477706 0.2894664
+                0        1        2       3        4        5
+Observed 22.50000 32.00000 21.00000 13.5000 8.000000 5.000000
+Fitted   25.96983 27.73039 21.16784 11.5513 4.506289 1.256727
 \end{Soutput}
 \end{Schunk}
 
@@ -458,20 +458,20 @@ R> rad
 \end{Sinput}
 \begin{Soutput}
 RAD models, family poisson 
-No. of species 100, total abundance 429
-
-           par1      par2     par3   Deviance AIC     BIC    
-Null                                  45.067  331.756 331.756
-Preemption  0.039794                  33.728  322.417 325.022
-Lognormal   0.93253   1.0384          19.018  309.707 314.917
-Zipf        0.11174  -0.76181         42.503  333.192 338.402
-Mandelbrot  8.5711   -1.7894   14.87   7.286  299.975 307.790
+No. of species 102, total abundance 402
+
+           par1      par2    par3    Deviance AIC      BIC     
+Null                                  59.9800 342.5388 342.5388
+Preemption  0.040337                  47.8801 332.4389 335.0639
+Lognormal   0.80833   1.0772          24.2781 310.8369 316.0869
+Zipf        0.11928  -0.7903          36.6726 323.2314 328.4813
+Mandelbrot  2.3922   -1.5273  9.0795   7.0992 295.6580 303.5330
 \end{Soutput}
 \end{Schunk}
 \begin{SCfigure}
 \includegraphics{diversity-vegan-022}
 \caption{Ranked abundance distribution models for a random plot
-  (no. 20).  The best model has the lowest \textsc{aic}.}
+  (no. 41).  The best model has the lowest \textsc{aic}.}
 \label{fig:rad}
 \end{SCfigure}
 
@@ -776,10 +776,8 @@ R> s <- sample(nrow(BCI), 25)
 R> specpool(BCI[s,])
 \end{Sinput}
 \begin{Soutput}
-    Species    chao  chao.se  jack1 jack1.se    jack2     boot  boot.se
-All     207 222.125 8.427135 228.12 7.533605 234.2533 217.6358 4.392338
-     n
-All 25
+    Species chao  chao.se  jack1 jack1.se    jack2     boot  boot.se  n
+All     203  252 26.30827 229.88 7.124942 248.5867 214.6588 3.710797 25
 \end{Soutput}
 \end{Schunk}
 
@@ -796,12 +794,12 @@ two of these methods:
 R> estimateR(BCI[k,])
 \end{Sinput}
 \begin{Soutput}
-                 20
-S.obs    100.000000
-S.chao1  133.476190
-se.chao1  15.441519
-S.ACE    147.592810
-se.ACE     6.621289
+                 41
+S.obs    102.000000
+S.chao1  151.500000
+se.chao1  21.334825
+S.ACE    161.646487
+se.ACE     6.839367
 \end{Soutput}
 \end{Schunk}
 Chao's method is similar as above, but uses another, ``unbiased''
@@ -844,14 +842,14 @@ R> veiledspec(prestondistr(BCI[k,]))
 \end{Sinput}
 \begin{Soutput}
 Extrapolated     Observed       Veiled 
-   113.18418    100.00000     13.18418 
+   121.86261    102.00000     19.86261 
 \end{Soutput}
 \begin{Sinput}
 R> veiledspec(BCI[k,])
 \end{Sinput}
 \begin{Soutput}
 Extrapolated     Observed       Veiled 
-   122.24639    100.00000     22.24639 
+   146.08199    102.00000     44.08199 
 \end{Soutput}
 \end{Schunk}
 
diff --git a/inst/doc/intro-vegan.Rnw b/inst/doc/intro-vegan.Rnw
index 143689a..8918fec 100644
--- a/inst/doc/intro-vegan.Rnw
+++ b/inst/doc/intro-vegan.Rnw
@@ -34,7 +34,7 @@
   vector, fitted environmental surface, permutation tests}
 
 %% misuse of the address field for revision data
-\Address{$ $Id: intro-vegan.Rnw 2259 2012-08-23 15:13:58Z jarioksa $ $
+\Address{$ $Id: intro-vegan.Rnw 2346 2013-01-07 11:42:36Z jarioksa $ $
   processed with vegan
 \Sexpr{packageDescription("vegan", field="Version")}
 in \Sexpr{R.version.string} on \today}
@@ -55,7 +55,7 @@ options("prompt" = "R> ", "continue" = "+  ")
 
 \tableofcontents
 
-~\\[2ex]
+\vspace{3ex}
 \noindent \pkg{Vegan} is a package for community ecologists.  This
 documents explains how the commonly used ordination methods can be
 performed in \pkg{vegan}.  The document only is a very basic
diff --git a/inst/doc/intro-vegan.pdf b/inst/doc/intro-vegan.pdf
index 634a4aa..4db5757 100644
Binary files a/inst/doc/intro-vegan.pdf and b/inst/doc/intro-vegan.pdf differ
diff --git a/inst/doc/intro-vegan.tex b/inst/doc/intro-vegan.tex
index dd03cae..3b7abfa 100644
--- a/inst/doc/intro-vegan.tex
+++ b/inst/doc/intro-vegan.tex
@@ -34,10 +34,10 @@
   vector, fitted environmental surface, permutation tests}
 
 %% misuse of the address field for revision data
-\Address{$ $Id: intro-vegan.Rnw 2259 2012-08-23 15:13:58Z jarioksa $ $
+\Address{$ $Id: intro-vegan.Rnw 2346 2013-01-07 11:42:36Z jarioksa $ $
   processed with vegan
-2.0-5
-in R Under development (unstable) (2012-10-08 r60901) on \today}
+2.0-6
+in R Under development (unstable) (2013-02-10 r61900) on \today}
 \Footername{About this version}
 
 %% need no \usepackage{Sweave}
@@ -48,7 +48,7 @@ in R Under development (unstable) (2012-10-08 r60901) on \today}
 
 \tableofcontents
 
-~\\[2ex]
+\vspace{3ex}
 \noindent \pkg{Vegan} is a package for community ecologists.  This
 documents explains how the commonly used ordination methods can be
 performed in \pkg{vegan}.  The document only is a very basic
@@ -126,16 +126,9 @@ species scores to the configuration as weighted averages (function
 R> ord <- metaMDS(dune)
 \end{Sinput}
 \begin{Soutput}
-Run 0 stress 0.1192691 
-Run 1 stress 0.1812939 
-Run 2 stress 0.1808915 
-Run 3 stress 0.1809588 
-Run 4 stress 0.1183188 
-... New best solution
-... procrustes: rmse 0.02021248  max resid 0.06425558 
-Run 5 stress 0.1192686 
-Run 6 stress 0.1183202 
-... procrustes: rmse 0.0005415232  max resid 0.001655342 
+Run 0 stress 0.1192678 
+Run 1 stress 0.1192685 
+... procrustes: rmse 0.0004731361  max resid 0.001456133 
 *** Solution reached
 \end{Soutput}
 \begin{Sinput}
@@ -151,9 +144,9 @@ Data:     dune
 Distance: bray 
 
 Dimensions: 2 
-Stress:     0.1183188 
+Stress:     0.1192678 
 Stress type 1, weak ties
-Two convergent solutions found after 6 tries
+Two convergent solutions found after 1 tries
 Scaling: centring, PC rotation, halfchange scaling 
 Species: expanded scores based on ‘dune’ 
 \end{Soutput}
@@ -311,26 +304,26 @@ R> ord.fit
 \begin{Soutput}
 ***VECTORS
 
-     NMDS1   NMDS2    r2  Pr(>r)  
-A1 0.96467 0.26345 0.365 0.02398 *
+     NMDS1   NMDS2     r2  Pr(>r)  
+A1 0.99008 0.14052 0.3798 0.01299 *
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 P values based on 1000 permutations.
 
 ***FACTORS:
 
 Centroids:
                NMDS1   NMDS2
-ManagementBF -0.4534 -0.0103
-ManagementHF -0.2638 -0.1282
-ManagementNM  0.2957  0.5790
-ManagementSF  0.1509 -0.4670
+ManagementBF -0.4474 -0.0193
+ManagementHF -0.2689 -0.1256
+ManagementNM  0.2976  0.5798
+ManagementSF  0.1502 -0.4654
 
 Goodness of fit:
-               r2   Pr(>r)   
-Management 0.4134 0.008991 **
+               r2  Pr(>r)  
+Management 0.4134 0.01499 *
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 P values based on 1000 permutations.
 \end{Soutput}
 \end{Schunk}
@@ -356,12 +349,12 @@ Link function: identity
 
 Formula:
 y ~ s(x1, x2, k = knots)
-<environment: 0x3525cd8>
+<environment: 0x2a84578>
 
 Estimated degrees of freedom:
 2  total = 3 
 
-GCV score: 3.964875
+GCV score: 3.872935
 \end{Soutput}
 \end{Schunk}
 \begin{SCfigure}
@@ -477,7 +470,7 @@ Model: cca(formula = dune ~ A1 + Management, data = dune.env)
 Model     4 0.7798 2.1896    199  0.005 **
 Residual 15 1.3355                        
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 The function actually used was \code{anova.cca}, but you do not need
@@ -502,11 +495,11 @@ Terms added sequentially (first to last)
 
 Model: cca(formula = dune ~ A1 + Management, data = dune.env)
            Df  Chisq      F N.Perm Pr(>F)   
-A1          1 0.2248 2.5245    199  0.015 * 
+A1          1 0.2248 2.5245    199  0.010 **
 Management  3 0.5550 2.0780    199  0.005 **
 Residual   15 1.3355                        
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 In this case, the function is unable to automatically select the
@@ -523,11 +516,11 @@ Marginal effects of terms
 
 Model: cca(formula = dune ~ A1 + Management, data = dune.env)
            Df  Chisq      F N.Perm  Pr(>F)   
-A1          1 0.1759 1.9761    699 0.02571 * 
+A1          1 0.1759 1.9761   1299 0.03538 * 
 Management  3 0.5550 2.0780    199 0.00500 **
 Residual   15 1.3355                         
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 
@@ -538,14 +531,14 @@ R> anova(ord, by="axis", perm=500)
 \end{Sinput}
 \begin{Soutput}
 Model: cca(formula = dune ~ A1 + Management, data = dune.env)
-         Df  Chisq      F N.Perm Pr(>F)   
-CCA1      1 0.3187 3.5801    199  0.005 **
-CCA2      1 0.2372 2.6640    199  0.015 * 
-CCA3      1 0.1322 1.4845     99  0.160   
-CCA4      1 0.0917 1.0297     99  0.390   
-Residual 15 1.3355                        
+         Df  Chisq      F N.Perm  Pr(>F)   
+CCA1      1 0.3187 3.5801    199 0.00500 **
+CCA2      1 0.2372 2.6640    299 0.01333 * 
+CCA3      1 0.1322 1.4845    199 0.14000   
+CCA4      1 0.0917 1.0297     99 0.33000   
+Residual 15 1.3355                         
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 Now the automatic selection works, but typically some of your axes
@@ -598,11 +591,11 @@ Terms added sequentially (first to last)
 
 Model: cca(formula = dune ~ A1 + Management + Condition(Moisture), data = dune.env)
            Df  Chisq      F N.Perm Pr(>F)  
-A1          1 0.1154 1.4190     99   0.10 .
-Management  3 0.3954 1.6205     99   0.03 *
+A1          1 0.1154 1.4190     99   0.11  
+Management  3 0.3954 1.6205     99   0.02 *
 Residual   12 0.9761                       
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 If we had a designed experiment, we may wish to restrict the
@@ -619,11 +612,11 @@ Permutations stratified within 'Moisture'
 
 Model: cca(formula = dune ~ A1 + Management + Condition(Moisture), data = dune.env)
            Df  Chisq      F N.Perm Pr(>F)   
-A1          1 0.1154 1.4190     99   0.27   
+A1          1 0.1154 1.4190     99   0.24   
 Management  3 0.3954 1.6205     99   0.01 **
 Residual   12 0.9761                        
 ---
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
+Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 \end{Soutput}
 \end{Schunk}
 
diff --git a/man/capscale.Rd b/man/capscale.Rd
index d18562d..c5e286f 100644
--- a/man/capscale.Rd
+++ b/man/capscale.Rd
@@ -206,13 +206,21 @@ capscale(formula, data, distance = "euclidean", sqrt.dist = FALSE,
   \code{squared} is added to the name of distance, unless data were
   square root transformed (argument \code{sqrt.dist = TRUE}). If an
   additive constant was used, keyword \code{euclidified} is added to the
-  the name of inertia (argument \code{add = TRUE}).
+  the name of inertia, and the value of the constant is printed
+ (argument \code{add = TRUE}).
 }
 
 
 \seealso{\code{\link{rda}}, \code{\link{cca}}, \code{\link{plot.cca}},
   \code{\link{anova.cca}}, \code{\link{vegdist}},
-  \code{\link{dist}}, \code{\link{cmdscale}}.}
+  \code{\link{dist}}, \code{\link{cmdscale}}.
+
+  The function returns similar result object as \code{\link{rda}} (see
+  \code{\link{cca.object}}). This section for \code{\link{rda}} gives a
+  more complete list of functions that can be used to access and
+  analyse \code{capscale} results.
+
+}
 \examples{
 data(varespec)
 data(varechem)
diff --git a/man/cca.Rd b/man/cca.Rd
index 5d36232..31d4a9d 100644
--- a/man/cca.Rd
+++ b/man/cca.Rd
@@ -65,7 +65,10 @@
   regression on constraining variables, and the fitted values are
   submitted to correspondence analysis performed via singular value
   decomposition (\code{\link{svd}}). Function \code{rda} is similar, but uses
-  ordinary, unweighted linear regression and unweighted SVD.
+  ordinary, unweighted linear regression and unweighted SVD. Legendre &
+  Legendre (2012), Table 11.5 (p. 650) give a skeleton of the RDA
+  algorithm of \pkg{vegan}. The algorithm of CCA is similar, but
+  involves standardization by row and column weights.
 
   The functions can be called either with matrix-like entries for community
   data and constraints, or with formula interface.  In general, the
@@ -191,25 +194,61 @@
 }
 
 \seealso{
-  There is a special documentation for \code{\link{plot.cca}} and
-  \code{\link{summary.cca}} functions
-  with their helper functions (\code{\link{text.cca}},
-  \code{\link{points.cca}}, \code{\link{scores.cca}}).
-  Function \code{\link{anova.cca}} provides an ANOVA like permutation
-  test for the ``significance'' of constraints. Automatic model building
-  (dangerous!) is discussed in \code{\link{deviance.cca}}.  Diagnostic
-  tools, prediction and adding new points in ordination are discussed in
-  \code{\link{goodness.cca}} and \code{\link{predict.cca}}.
-  Function  \code{\link[ade4]{cca}} (library \pkg{ade4}) provide alternative
-  implementations of CCA (these are internally quite
-  different). Function \code{\link{capscale}} is a non-Euclidean generalization of
-  \code{rda}. The result object is described in
-  \code{\link{cca.object}}.
-  You can use \code{\link{as.mlm}} to refit ordination result as a
-  multiple response linear model to find some descriptive statistics.
-  Design decisions are explained in
-  \code{\link{vignette}} \file{decision-vegan} which also can be accessed
-  with \code{\link{vegandocs}}.  
+  
+  This help page describes two constrained ordination functions,
+  \code{cca} and \code{rda}.  A related method, distance-based
+  redundancy analysis (dbRDA) is described separately
+  (\code{\link{capscale}}). All these function return similar objects
+  (described in \code{\link{cca.object}}). There are numerous support
+  functions that can used to access the result object. In the list
+  below, functions of type \code{cca} will handle all ordination
+  objects, and functions of \code{rda} only handle \code{rda} and
+  \code{\link{capscale}} results.
+
+  The main plotting functions are \code{\link{plot.cca}} for all
+  methods, and \code{\link{biplot.rda}} for RDA and dbRDA.  However,
+  generic \pkg{vegan} plotting functions can also handle the results.
+  The scores can be accessed and scaled with \code{\link{scores.cca}},
+  and summarized with \code{\link{summary.cca}}. The eigenvalues can
+  be accessed with \code{\link{eigenvals.cca}} and the regression
+  coefficients for constraints with \code{\link{coef.cca}}.  The
+  eigenvalues can be plotted with \code{\link{screeplot.cca}}, and the
+  (adjusted) \eqn{R^2}{R-squared} can be found with
+  \code{\link{RsquareAdj.rda}}. The scores can be also calculated for
+  new data sets with \code{\link{predict.cca}} which allows adding
+  points to ordinations.  The values of constraints can be inferred
+  from ordination and community composition with
+  \code{\link{calibrate.cca}}.
+
+  Diagnostic statistics can be found with \code{\link{goodness.cca}},
+  \code{\link{inertcomp}}, \code{\link{spenvcor}},
+  \code{\link{intersetcor}}, \code{\link{tolerance.cca}}, and
+  \code{\link{vif.cca}}.  Function \code{\link{as.mlm.cca}} refits the
+  result object as a multiple \code{\link{lm}} object, and this allows
+  finding influence statistics (\code{\link{lm.influence}},
+  \code{\link{cooks.distance}} etc.).
+  
+  Permutation based signficance for the overall model, single
+  constraining variables or axes can be found with
+  \code{\link{anova.cca}}.  Automatic model building with \R{}
+  \code{\link{step}} function is possible with
+  \code{\link{deviance.cca}}, \code{\link{add1.cca}} and
+  \code{\link{drop1.cca}}.  Functions \code{\link{ordistep}} and
+  \code{\link{ordiR2step}} (for RDA) are special functions for
+  constrained ordination. Randomized data sets can be generated with
+  \code{\link{simulate.cca}}.
+
+  Separate methods based on constrained ordination model are principal
+  response curves (\code{\link{prc}}) and variance partioning between
+  several components (\code{\link{varpart}}).
+
+  Design decisions are explained in \code{\link{vignette}}
+  \file{decision-vegan} which also can be accessed with
+  \code{\link{vegandocs}}.
+
+  Package \pkg{ade4} provides alternative constrained ordination
+  functions \code{\link[ade4]{cca}} and \code{\link[ade4]{pcaiv}}.
+
 }
 
 \examples{
diff --git a/man/cca.object.Rd b/man/cca.object.Rd
index 9292e18..d7e1b93 100644
--- a/man/cca.object.Rd
+++ b/man/cca.object.Rd
@@ -190,6 +190,10 @@
   linear model (\code{\link{lm}}) in order to more easily find some
   statistics (which in principle could be directly found from the
   \code{cca.object} as well). 
+
+  This section in \code{\link{cca}} gives a more complete list of
+  methods to handle the constrained ordination result object.
+
 }
 \references{
   Legendre, P. and Legendre, L. (2012) \emph{Numerical Ecology}. 3rd English
diff --git a/man/clamtest.Rd b/man/clamtest.Rd
index 0fcb282..ec1279e 100644
--- a/man/clamtest.Rd
+++ b/man/clamtest.Rd
@@ -24,7 +24,8 @@ Community matrix, consisting of counts.
 }
   \item{groups}{
 A vector identifying the two habitats. Must have exactly
-two unique values or levels.
+two unique values or levels. Habitat IDs in the grouping vector
+must match corresponding rows in the community matrix \code{comm}.
 }
   \item{coverage.limit}{
 Integer, below this limit the sample coverage based correction
diff --git a/man/dispindmorisita.Rd b/man/dispindmorisita.Rd
index 1d1d937..7448b7b 100644
--- a/man/dispindmorisita.Rd
+++ b/man/dispindmorisita.Rd
@@ -6,33 +6,42 @@
 Calculates the Morisita index of dispersion, standardized index values, and the so called clumpedness and uniform indices.
 }
 \usage{
-dispindmorisita(x, unique.rm = FALSE, crit = 0.05)
+dispindmorisita(x, unique.rm = FALSE, crit = 0.05, na.rm = FALSE)
 }
 \arguments{
-  \item{x}{community data matrix, with sites (samples) as rows and species as columns.}
-  \item{unique.rm}{logical, if \code{TRUE}, unique species (occurring in only one sample) are removed from the result.}
-  \item{crit}{two-sided p-value used to calculate critical Chi-squared values.}
+  \item{x}{community data matrix, with sites (samples) as rows and 
+    species as columns.}
+  \item{unique.rm}{logical, if \code{TRUE}, unique species (occurring 
+    in only one sample) are removed from the result.}
+  \item{crit}{two-sided p-value used to calculate critical 
+    Chi-squared values.}
+  \item{na.rm}{logical. 
+    Should missing values (including \code{NaN}) be omitted from the 
+    calculations?}
 }
 \details{
 The Morisita index of dispersion is defined as (Morisita 1959, 1962):
 
 \code{Imor = n * (sum(xi^2) - sum(xi)) / (sum(xi)^2 - sum(xi))}
 
-where \eqn{xi} is the count of individuals in sample \eqn{i}, and \eqn{n} is the
-number of samples (\eqn{i = 1, 2, \ldots, n}). \eqn{Imor} has values from 0 to
-\eqn{n}. In uniform (hyperdispersed) patterns its value falls between 0 and
-1, in clumped patterns it falls between 1 and \eqn{n}. For increasing sample
-sizes (i.e. joining neighbouring quadrats), \eqn{Imor} goes to \eqn{n} as the
-quadrat size approaches clump size. For random patterns, \eqn{Imor = 1} and
-counts in the samples follow Poisson frequency distribution.
-
-The deviation from random expectation can be tested using critical
-values of the Chi-squared distribution with \eqn{n-1} degrees of
-freedom. Confidence interval around 1 can be calculated by the clumped
+where \eqn{xi} is the count of individuals in sample \eqn{i}, and 
+\eqn{n} is the number of samples (\eqn{i = 1, 2, \ldots, n}). 
+\eqn{Imor} has values from 0 to \eqn{n}. In uniform (hyperdispersed) 
+patterns its value falls between 0 and 1, in clumped patterns it falls 
+between 1 and \eqn{n}. For increasing sample sizes (i.e. joining 
+neighbouring quadrats), \eqn{Imor} goes to \eqn{n} as the
+quadrat size approaches clump size. For random patterns, 
+\eqn{Imor = 1} and counts in the samples follow Poisson 
+frequency distribution.
+
+The deviation from random expectation (null hypothesis)
+can be tested using criticalvalues of the Chi-squared 
+distribution with \eqn{n-1} degrees of freedom. 
+Confidence intervals around 1 can be calculated by the clumped
 \eqn{Mclu} and uniform \eqn{Muni} indices (Hairston et al. 1971, Krebs
 1999) (Chi2Lower and Chi2Upper refers to e.g. 0.025 and 0.975 quantile
 values of the Chi-squared distribution with \eqn{n-1} degrees of
-freedom, respectively, for \code{alpha = 0.05}):
+freedom, respectively, for \code{crit = 0.05}):
 
 \code{Mclu = (Chi2Lower - n + sum(xi)) / (sum(xi) - 1)}
 
@@ -54,13 +63,15 @@ to calculate the standardized index \eqn{Imst}:
 }
 
 \value{ Returns a data frame with as many rows as the number of columns
-in the input data, and with four columns. Columns are: \code{imor}
+in the input data, and with four columns. Columns are: \code{imor} the
 unstandardized Morisita index, \code{mclu} the clumpedness index,
-\code{muni} the uniform index, \code{imst} standardized Morisita index.
+\code{muni} the uniform index, \code{imst} the standardized Morisita 
+index, \code{pchisq} the Chi-squared based probability for the null
+hypothesis of random expectation.
 }
 
 \references{
-  
+
 Morisita, M. 1959. Measuring of the dispersion of individuals and
 analysis of the distributional patterns.  \emph{Mem. Fac. Sci. Kyushu
 Univ. Ser. E} 2, 215--235.
diff --git a/man/monoMDS.Rd b/man/monoMDS.Rd
index 6926395..1b20709 100644
--- a/man/monoMDS.Rd
+++ b/man/monoMDS.Rd
@@ -16,7 +16,7 @@
 \usage{
 monoMDS(dist, y, k = 2, model = c("global", "local", "linear", "hybrid"), 
     threshold = 0.8, maxit = 200, weakties = TRUE, stress = 1,
-    scaling = TRUE, pc = TRUE, smin = 0.00001, sfgrmin = 0.00001, 
+    scaling = TRUE, pc = TRUE, smin = 1e-4, sfgrmin = 1e-7, 
     sratmax=0.99999, ...) 
 \method{scores}{monoMDS}(x, choices = NA, ...)
 \method{plot}{monoMDS}(x, choices = c(1,2), type = "t", ...)
diff --git a/man/mso.Rd b/man/mso.Rd
index a21405f..f1e0650 100644
--- a/man/mso.Rd
+++ b/man/mso.Rd
@@ -14,7 +14,7 @@ of cca or rda results}
 
 \usage{
 mso(object.cca, object.xy, grain = 1, round.up = FALSE, permutations = FALSE)
-msoplot(x, alpha = 0.05, explained = FALSE, ylim = NULL, ...)
+msoplot(x, alpha = 0.05, explained = FALSE, ylim = NULL, legend = "topleft", ...)
 }
 \arguments{
   \item{object.cca}{ An object of class cca, created by the \code{\link{cca}} or
@@ -40,6 +40,9 @@ msoplot(x, alpha = 0.05, explained = FALSE, ylim = NULL, ...)
   \item{explained}{ If false, suppresses the plotting of the variogram
     of explained variance.}
   \item{ylim}{Limits for y-axis.}
+  \item{legend}{The x and y co-ordinates to be used to position the legend. 
+    They can be specified by keyword or in any way which is accepted 
+    by \code{\link{legend}}.}
   \item{\dots}{Other arguments passed to functions.}
 }
 \details{
diff --git a/man/nestedtemp.Rd b/man/nestedtemp.Rd
index 987bdfe..0f2c2b4 100644
--- a/man/nestedtemp.Rd
+++ b/man/nestedtemp.Rd
@@ -8,6 +8,7 @@
 \alias{nestedbetasor}
 \alias{nestedbetajac}
 \alias{plot.nestedtemp}
+\alias{plot.nestednodf}
 
 \title{ Nestedness Indices for Communities of Islands or Patches }
 
@@ -28,6 +29,7 @@ nestedbetasor(comm)
 nestedbetajac(comm)
 \method{plot}{nestedtemp}(x, kind = c("temperature", "incidence"),
     col=rev(heat.colors(100)),  names = FALSE, ...)
+\method{plot}{nestednodf}(x, col = "red", names = FALSE, ...)
 }
 
 \arguments{
diff --git a/man/ordistep.Rd b/man/ordistep.Rd
index 3f92a8b..1fb5f80 100644
--- a/man/ordistep.Rd
+++ b/man/ordistep.Rd
@@ -19,7 +19,7 @@ ordistep(object, scope, direction = c("both", "backward", "forward"),
    Pin = 0.05, Pout = 0.1, pstep = 100, perm.max = 1000, steps = 50,
    trace = TRUE, ...)
 ordiR2step(object, scope, direction = c("both", "forward"),
-   Pin = 0.05, pstep = 100, perm.max = 1000,
+   Pin = 0.05, R2scope = TRUE, pstep = 100, perm.max = 1000,
    trace = TRUE, ...)
 }
 %- maybe also 'usage' for other objects documented here.
@@ -45,6 +45,12 @@ ordiR2step(object, scope, direction = c("both", "forward"),
   the model, or dropping (\code{Pout}) from the model. Term is added if
   \eqn{P \le}{P <=} \code{Pin}, and removed if \eqn{P >} \code{Pout}. 
 }
+
+  \item{R2scope}{
+  Use adjusted \eqn{R^2}{R2} as the stopping criterion: only models with
+  lower adjusted \eqn{R^2}{R2} than scope are accepted.
+  }
+
   \item{pstep}{
   Number of permutations in one step. See \code{\link{add1.cca}}.
 }
@@ -90,12 +96,16 @@ ordiR2step(object, scope, direction = c("both", "forward"),
   stopping when the adjusted \eqn{R^2}{R2} starts to decrease, or the
   adjusted \eqn{R^2}{R2} of the \code{scope} is exceeded, or the
   selected permutation \eqn{P}-value is exceeded (Blanchet et
-  al. 2008). The \code{direction} has choices \code{"forward"} and
-  \code{"both"}, but it is very excepctional that a term is dropped with
-  the adjusted \eqn{R^2}{R2} criterion.  Function uses adjusted
-  \eqn{R^2}{R2} as the criterion, and it cannot be used if the criterion
-  cannot be calculated.  Therefore it is unavailable for
-  \code{\link{cca}}.
+  al. 2008). The second criterion is ignored with option
+  \code{R2step = FALSE}, and the third criterion can be ignored setting
+  \code{Pin = 1} (or higher).  The \code{direction} has choices
+  \code{"forward"} and \code{"both"}, but it is very excepctional that a
+  term is dropped with the adjusted \eqn{R^2}{R2} criterion.  Function
+  uses adjusted \eqn{R^2}{R2} as the criterion, and it cannot be used if
+  the criterion cannot be calculated.  Therefore it is unavailable for
+  \code{\link{cca}}.  Adjusted \eqn{R^2}{R2} cannot be calculated if the
+  number of predictors is higher than the number of observations, but
+  such models can be analysed with \code{R2scope = FALSE}.
 
   Functions \code{ordistep} (based on \eqn{P} values) and \code{ordiR2step}
   (based on adjusted \eqn{R^2}{R2} and hence on eigenvalues) can select
diff --git a/man/orditorp.Rd b/man/orditorp.Rd
index 6f8ef75..0f18147 100644
--- a/man/orditorp.Rd
+++ b/man/orditorp.Rd
@@ -11,7 +11,7 @@
 }
 \usage{
 orditorp(x, display, labels, choices = c(1, 2), priority,
-    cex = 0.7, pcex, col = par("col"), pcol,
+    select, cex = 0.7, pcex, col = par("col"), pcol,
     pch = par("pch"), air = 1, ...)
 }
 
@@ -27,6 +27,10 @@ orditorp(x, display, labels, choices = c(1, 2), priority,
   \item{priority}{ Text will be used for items with higher priority
     if labels overlap.  This should be vector of the same
     length as the number of items plotted.}
+  \item{select}{Items to be displayed.  This can either be a logical
+    vector which is \code{TRUE} for displayed items or a vector of indices
+    of displayed items. If a logical vector is used, it must have the
+    same length as the scores plotted.}
   \item{cex, pcex}{Text and point sizes, see \code{\link{plot.default}}..}
   \item{col, pcol}{Text and point colours, see \code{\link{plot.default}}.}
   \item{pch}{Plotting character, see \code{\link{points}}.}
@@ -72,6 +76,18 @@ cnam <- make.cepnames(names(BCI))
 plot(mod, dis="sp", type="n")
 stems <- colSums(BCI)
 orditorp(mod, "sp", label = cnam, priority=stems, pch="+", pcol="grey")
+
+## show select in action
+set.seed(1)
+take <- sample(ncol(BCI), 50)
+plot(mod, dis="sp", type="n")
+stems <- colSums(BCI)
+orditorp(mod, "sp", label = cnam, priority=stems, select = take,
+         pch="+", pcol="grey")
+\dontshow{
+## example(orditorp) should not set random seed in the user session
+rm(.Random.seed)
+}
 }
 \keyword{ aplot }
 \keyword{ hplot }
diff --git a/man/predict.cca.Rd b/man/predict.cca.Rd
index b522497..246cb5c 100644
--- a/man/predict.cca.Rd
+++ b/man/predict.cca.Rd
@@ -21,9 +21,9 @@
   response data. 
 }
 \usage{
-\method{fitted}{cca}(object, model = c("CCA", "CA"),
+\method{fitted}{cca}(object, model = c("CCA", "CA", "pCCA"),
     type =  c("response", "working"), ...)
-\method{fitted}{capscale}(object, model = c("CCA", "CA", "Imaginary"),
+\method{fitted}{capscale}(object, model = c("CCA", "CA", "pCCA", "Imaginary"),
     type = c("response", "working"), ...)
 \method{residuals}{cca}(object, ...)
 \method{predict}{cca}(object, newdata, type = c("response", "wa", "sp", "lc", "working"),
@@ -37,24 +37,23 @@
 \arguments{
   \item{object}{A result object from \code{\link{cca}},
     \code{\link{rda}}, \code{\link{capscale}} or \code{\link{decorana}}. }
-  \item{model}{Show constrained (\code{"CCA"}) or unconstrained
-    (\code{"CA"}) results. For \code{\link{capscale}} this can also be 
-    \code{"Imaginary"} for imaginary components with negative
-    eigenvalues. }
-  
+  \item{model}{Show constrained (\code{"CCA"}), unconstrained
+    (\code{"CA"}) or conditioned \dQuote{partial} (\code{"pCCA"})
+    results. For \code{fitted} method of \code{\link{capscale}} this
+    can also be \code{"Imaginary"} for imaginary components with
+    negative eigenvalues. }
   \item{newdata}{New data frame to be used in prediction or in
     calibration.  Usually this a new community data frame, but with
-    \code{type = "lc"} and for constrained component with 
-    \code{type = "response"} and \code{type = "working"} it must be a 
-    data frame.  The \code{newdata} must have the same number of rows as
-    the original community data for a \code{\link{cca}} result with
+    \code{type = "lc"} and for constrained component with \code{type =
+    "response"} and \code{type = "working"} it must be a data frame of
+    constraints.  The \code{newdata} must have the same number of rows
+    as the original community data for a \code{\link{cca}} result with
     \code{type = "response"} or \code{type = "working"}.  If the
     original model had row or column names, then new data must contain
     rows or columns with the same names (row names for species scores,
     column names for \code{"wa"} scores and constraint names of
     \code{"lc"} scores). In other cases the rows or columns must match
     directly. }
-
   \item{type}{The type of prediction, fitted values or residuals:
     \code{"response"} scales results so that the same ordination gives
     the same results, and \code{"working"} gives the values used
@@ -71,28 +70,28 @@
   \item{rank}{The rank or the number of axes used in the approximation.
     The default is to use all axes (full rank) of the \code{"model"} or
     all available four axes in \code{predict.decorana}.}
-  \item{scaling}{Scaling or predicted scores
-  with the same  meaning as in \code{\link{cca}}, \code{\link{rda}} and
-  \code{\link{capscale}}.}
+  \item{scaling}{Scaling or predicted scores with the same meaning as
+    in \code{\link{cca}}, \code{\link{rda}} and
+    \code{\link{capscale}}.}
   \item{\dots}{Other parameters to the functions.}
 }
 \details{
+
   Function \code{fitted} gives the approximation of the original data
-  matrix or dissimilarities from the ordination result either in the 
-  scale of the response
-  or as scaled internally by the function.  Function \code{residuals} gives
-  the approximation of the original data from the unconstrained
-  ordination.  With argument \code{type = "response"} the
-  \code{fitted.cca} and \code{residuals.cca} function 
+  matrix or dissimilarities from the ordination result either in the
+  scale of the response or as scaled internally by the function.
+  Function \code{residuals} gives the approximation of the original
+  data from the unconstrained ordination.  With argument \code{type =
+  "response"} the \code{fitted.cca} and \code{residuals.cca} function
   both give the same marginal totals as the original data matrix, and
-  their entries do not add up to the original data. 
-  Functions \code{fitted.capscale} and \code{residuals.capscale} give the
-  dissimilarities with \code{type = "response"}, but these are not additive,
-  but the \code{"working"} scores are additive. 
-  All variants of \code{fitted} and \code{residuals} are defined so
-  that for model \code{mod <- cca(y ~ x)}, \code{cca(fitted(mod))} is equal
-  to constrained ordination, and \code{cca(residuals(mod))} is equal to
-  unconstrained part of the ordination.
+  fitted and residuals do not add up to the original data.  Functions
+  \code{fitted.capscale} and \code{residuals.capscale} give the
+  dissimilarities with \code{type = "response"}, but these are not
+  additive, but the \code{"working"} scores are additive.  All
+  variants of \code{fitted} and \code{residuals} are defined so that
+  for model \code{mod <- cca(y ~ x)}, \code{cca(fitted(mod))} is equal
+  to constrained ordination, and \code{cca(residuals(mod))} is equal
+  to unconstrained part of the ordination.  
 
   Function \code{predict} can find the estimate of the original data
   matrix or dissimilarities (\code{type = "response"}) with any rank.
@@ -105,8 +104,8 @@
   explicit \code{scaling} to add those scores to ordination
   diagrams. With \code{type = "wa"} the function finds the site scores
   from species scores. In that case, the new data can contain new sites,
-  but species must match in the original and new data.  With \code{type
-  = "sp"} the function finds species scores from site constraints
+  but species must match in the original and new data.  With \code{type="sp"} 
+  the function finds species scores from site constraints
   (linear combination scores). In that case the new data can contain new
   species, but sites must match in the original and new data. With
   \code{type = "lc"} the function finds the linear combination scores
@@ -117,7 +116,7 @@
   if constrained component is desired, and community data matrix if
   residual or unconstrained component is desired.  With these types, the
   function uses \code{newdata} to find new \code{"lc"} (constrained) or
-  \code{"wa"} scores (unconstrained) and then finding the response or
+  \code{"wa"} scores (unconstrained) and then finds the response or
   working data from these new row scores and species scores.  The
   original site (row) and species (column) weights are used for
   \code{type = "response"} and \code{type = "working"} in correspondence
@@ -127,7 +126,7 @@
   If a completely new data frame is created, extreme care is needed
   defining variables similarly as in the original model, in particular
   with (ordered) factors. If ordination was performed with the formula
-  interface, the \code{newdata} also can be a data frame or matrix, but
+  interface, the \code{newdata} can be a data frame or matrix, but
   extreme care is needed that the columns match in the original and
   \code{newdata}.
 
@@ -139,7 +138,7 @@
   arrows, but it uses regression coefficients.  The function can be called
   with \code{newdata} so that cross-validation is possible.  The
   \code{newdata} may contain new sites, but species must match in the
-  original and new data  The function
+  original and new data.  The function
   does not work with \sQuote{partial} models with \code{Condition} term,
   and it cannot be used with \code{newdata} for \code{\link{capscale}}
   results.  The results may only be interpretable for continuous variables.
diff --git a/man/procrustes.Rd b/man/procrustes.Rd
index 9d0a19c..4753d6c 100644
--- a/man/procrustes.Rd
+++ b/man/procrustes.Rd
@@ -135,15 +135,16 @@ protest(X, Y, scores = "sites", permutations = 999, strata, ...)
   function canot be used with \code{newdata} for \code{symmetric}
   analysis.
 
-  Function \code{protest} calls \code{procrustes(..., symmetric = TRUE)}
+  Function \code{protest} performs symmetric Procrustes analysis
   repeatedly to estimate the `significance' of the Procrustes
   statistic. Function \code{protest} uses a correlation-like statistic
   derived from the symmetric Procrustes sum of squares \eqn{ss} as
-  \eqn{r =\sqrt{(1-ss)}}, and sometimes called \eqn{m_{12}}. Function
-  \code{protest} has own \code{print} method, but otherwise uses
-  \code{procrustes} methods. Thus \code{plot} with a \code{protest} object
-  yields a ``Procrustean superimposition plot.''
-}
+  \eqn{r =\sqrt{1-ss}}{r = sqrt(1-ss)}, and also prints the sum of
+  squares of the symmetric analysis, sometimes called
+  \eqn{m_{12}^2}{squared m12}. Function \code{protest} has own
+  \code{print} method, but otherwise uses \code{procrustes}
+  methods. Thus \code{plot} with a \code{protest} object yields a
+  ``Procrustean superimposition plot.''  }
 
 \value{
   Function \code{procrustes} returns an object of class
diff --git a/man/treedive.Rd b/man/treedive.Rd
index 82e7d56..a1f6837 100644
--- a/man/treedive.Rd
+++ b/man/treedive.Rd
@@ -13,17 +13,18 @@
 \usage{
 treedive(comm, tree, match.force = FALSE)
 treeheight(tree)
-treedist(x, tree, relative = TRUE, ...)
+treedist(x, tree, relative = TRUE, match.force = FALSE, ...)
 }
 
 \arguments{
   \item{comm, x}{Community data frame or matrix.}
   \item{tree}{A dendrogram which for \code{treedive} must be for species
     (columns).}
-  \item{match.force}{Force matching of column names in \code{comm} and
-    labels in \code{tree}. If \code{FALSE}, matching only happens when
-    dimensions differ, and in that case the species must be in identical
-    order in both.}
+  \item{match.force}{Force matching of column names in data
+    (\code{comm}, \code{x}) and labels in \code{tree}. If \code{FALSE},
+    matching only happens when dimensions differ (with a warning or
+    message). The order of data must match to the order in \code{tree}
+    if matching by names is not done.}
   \item{relative}{Use distances relative to the height of combined tree.}
   \item{\dots}{Other arguments passed to functions (ignored).}
 }
@@ -99,8 +100,17 @@ treedist(x, tree, relative = TRUE, ...)
 
 \author{Jari Oksanen}
 
-\seealso{ \code{\link{taxondive}} is something very similar from
-another world. }
+\seealso{
+  Function \code{treedive} is similar to the phylogenetic
+  diversity function \code{\link[picante]{pd}} in \pkg{picante}, but
+  excludes tree root if that is not needed to connect species. Function
+  \code{treedist} is similar to the phylogenetic similarity
+  \code{\link[picante]{phylosor}} in \pkg{picante}, but excludes
+  unneeded tree root and returns distances instead of similarities.
+
+  \code{\link{taxondive}} is something very similar from another world.
+}
+
 \examples{
 ## There is no data set on species properties yet, and therefore
 ## the example uses taxonomy 
diff --git a/man/wcmdscale.Rd b/man/wcmdscale.Rd
index 5c0af4e..07fcc3e 100644
--- a/man/wcmdscale.Rd
+++ b/man/wcmdscale.Rd
@@ -6,9 +6,14 @@
 
 \name{wcmdscale}
 \alias{wcmdscale}
+\alias{scores.wcmdscale}
+\alias{plot.wcmdscale}
+
 \title{Weighted Classical (Metric) Multidimensional Scaling}
 \usage{
 wcmdscale(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
+\method{plot}{wcmdscale}(x, choices = c(1, 2), type = "t", ...)
+\method{scores}{wcmdscale}(x, choices = NA, ...) 
 }
 \description{
   Weighted classical multidimensional scaling, 
@@ -27,6 +32,13 @@ wcmdscale(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
   \item{x.ret}{indicates whether the doubly centred symmetric distance
     matrix should be returned.}
   \item{w}{Weights of points.}
+  \item{x}{The \code{wcmdscale} result object when the function was
+    called with options \code{eig = TRUE} or \code{x.ret = TRUE} (See
+    Details).}
+  \item{choices}{Axes to be returned; \code{NA} returns all real axes.}
+  \item{type}{Type of graph which may be \code{"t"}ext, \code{"p"}oints
+    or \code{"n"}one.}
+  \item{\dots}{Other arguments passed to graphical functions.}
 }
 \details{
   Function \code{wcmdscale} is based on function
@@ -34,7 +46,13 @@ wcmdscale(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
   point weights. Points with high weights will have a stronger
   influence on the result than those with low weights. Setting equal
   weights \code{w = 1} will give ordinary multidimensional scaling.
-}
+
+  With default options, the function returns only a matrix of scores
+  scaled by eigenvalues for all real axes. If the function is called
+  with \code{eig = TRUE} or \code{x.ret = TRUE}, the function returns an
+  object of class \code{"wcmdscale"} with \code{print}, \code{plot},
+  \code{scores}, \code{\link{eigenvals}} and \code{\link{stressplot}}
+  methods, and described in section Value.  }
 
 \value{ If \code{eig = FALSE} and \code{x.ret = FALSE} (default), a
   matrix with \code{k} columns whose rows give the coordinates of the
@@ -56,7 +74,8 @@ wcmdscale(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
      scaled by the absolute eigenvalues similarly as
      \code{points}. This is \code{NULL} if there are no negative
      eigenvalues or \code{k} was specified, and would not include
-     negative eigenvalues.}  
+     negative eigenvalues.}
+  \item{call}{Function call.}
 }
 
 \references{
@@ -69,10 +88,11 @@ wcmdscale(d, k, eig = FALSE, add = FALSE, x.ret = FALSE, w)
   \emph{Multivariate Analysis}, London: Academic Press.
 }
 
-\seealso{ \code{\link{cmdscale}}.  Also \code{\link{monoMDS}}, and
+\seealso{The function is modelled after \code{\link{cmdscale}}, but adds
+  weights (hence name) and handles negative eigenvalues differently.
+  Other multidimensional scaling methods are \code{\link{monoMDS}}, and
   \code{\link[MASS]{isoMDS}} and \code{\link[MASS]{sammon}} in package
-  \pkg{MASS}.  
-}
+  \pkg{MASS}.  }
 
 \examples{
 ## Correspondence analysis as a weighted principal coordinates

-- 
Community Ecology Package for R



More information about the debian-med-commit mailing list