Commits on Jun 22, 2017
Commits on Jun 21, 2017
  1. adjust and update help page

    committed Jun 21, 2017
  2. less nerdy buttons

    committed Jun 21, 2017
Commits on Jun 19, 2017
  1. avoid CRAN warnings on assignments to the global environment

    Now we assign to the parent.frame(). As orditkplot() is only used
    interactively, this is the same as the global environment, but
    passes --as-cran tests.
    committed Jun 19, 2017
Commits on Jun 7, 2017
  1. update tests/Examples

    committed Jun 7, 2017
  2. Merge branch 'adonis2-fix'

    - further modernization of adonis2 object: Ybar must be in the top
      level, and it is safe to use initDBRDA instead of hand-made Gower
    - anova.ccabyterm failed when all terms were not in scope (e.g., in
      models with interaction terms)
    committed Jun 7, 2017
  3. anova.cca by="margin" failed when all terms were not in scope

    anova(cca ~ A1*Management, dune.env) failed because only one term
    A1:Management was in scope, and the same for all other case where
    scope did not include all terms in marginal models (also in adonis2).
    committed Jun 7, 2017
  4. Merge branch 'anova-cca-use-permutest'

    - anova.cca by = "terms" uses directly permutest(..., by="term") and
      runs mainly in compiled code (hence is faster)
    - by = "margin" redesigned: no update() of formula, no partial term
      (hence robust against scoping problems), works with NA data
    - by = "axis" uses now 'forward' tests instead of marginal (which
      were biased) at the price of being 3-4 times slower
    - anova.cca lists of models mangled long model formulae
    - adonis2 bug fix: was not adapted to new permutation design
    - model.frame is more robust with subsets
    - model.matrix finds result directly from the result object and avoids
      scoping problems; works even when model.frame fails with scope
    - ordConstrained gained new method="pass" that can refit a model instead
      of update() of formula (which has scoping issues)
    committed Jun 7, 2017
  5. Merge pull request #237 from Microbiology/master

    Added average distance matrix function.
    committed on GitHub Jun 7, 2017
Commits on Jun 6, 2017
Commits on Jun 2, 2017
  1. ordConstrained() must set class to make all work with method="pass"

    Partial models gave inconsistent results in dbrda() because
    ordiYbar(..., "CA") did not know input was distance-based. This
    also appeared in anova(..., by="axis") which uses partial models.
    committed Jun 2, 2017
  2. ordConstrained gets method information from initialized Y

    earlier we used the supplied method argument, but after allowing
    method = "pass" this was insufficient and made distance-based
    methods wrongly analysed. Consequently anova by = "margin" and
    by = "axis" were wrong. It was also necessary to make permutest.cca
    identify distance-based methods from the x$method item as an
    alternative to class.
    This is somewhat hacky, and more fundamental change may be needed
    if ordConstrained(..., method="pass") is  used more widely.
    committed Jun 2, 2017
  3. update anova.cca help

    committed Jun 2, 2017
  4. reorder code

    committed Jun 2, 2017
Commits on Jun 1, 2017
  1. Added distfun

    Microbiology committed Jun 1, 2017
  2. Merge branch 'robust-anova-ccabyaxis' into anova-cca-use-permutest

    no anova.cca by=... method uses update() of formula. This makes them
    much more robust when embedded in other functions: no longer scoping
    issues in reconstructing data structures. In addition, by="terms"
    directly calls permutest.cca(..., by="terms"). The previous version
    of anova.cca(..., by="axis") was biased, and this merge replaces it
    with less biased function (I really don't know if it is possible to
    design really unbiased test by axes). Early in this branch, I also
    investigated method similar to using directly permutest(..., by="onedf")
    for axes, but it was found to be very biased and was abandoned.
    committed Jun 1, 2017
  3. anova.cca by="margin" no longer uses update()

    Function is now more robust and embeddable, because it does not
    need to search data for updated models in nested functions. After
    this, no anova.cca by= case needs update().
    Function also works now with missing data with global deletion of
    observations with any missing value.
    committed Jun 1, 2017
  4. model.matrix.cca is based on qr.X

    This is more robust than the old way of deeply nested function
    using model.frame based on ordiParseFormula and often failing
    when embedding these calls.
    CHANGE: old version returned weighted model matrix for cca, but
    this returns unweighted, and provides a separate method for rda.
    FIXME: model matrix for constraints also contains partial terms.
    committed Jun 1, 2017
Commits on May 31, 2017