File: rda.formula.R

package info (click to toggle)
r-cran-vegan 2.5-7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,564 kB
  • sloc: ansic: 2,275; fortran: 1,088; sh: 42; makefile: 2
file content (44 lines) | stat: -rw-r--r-- 1,472 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
`rda.formula` <-
    function (formula, data, scale = FALSE, na.action = na.fail,
              subset = NULL, ...)
{
    if (missing(data)) {
        data <- parent.frame()
    } else {
        data <- eval(match.call()$data, environment(formula),
                     enclos = .GlobalEnv)
    }
    d <- ordiParseFormula(formula, data = data, na.action = na.action,
                          subset = substitute(subset))
    sol <- rda.default(d$X, d$Y, d$Z, scale)
    if (!is.null(sol$CCA) && sol$CCA$rank > 0) {
        centroids <- centroids.cca(sol$CCA$wa, d$modelframe)
        if (!is.null(sol$CCA$alias))
            centroids <- unique(centroids)
        if (!is.null(centroids)) {
            rs <- rowSums(centroids^2)
            centroids <- centroids[rs > 1e-04,, drop = FALSE]
            if (length(centroids) == 0)
                centroids <- NULL
        }
        if (!is.null(centroids))
            sol$CCA$centroids <- centroids
    }
    ## replace rda.default call
    call <- match.call()
    call[[1]] <- as.name("rda")
    call$formula <- formula(d$terms)
    sol$call <- call
    if (!is.null(d$na.action)) {
        sol$na.action <- d$na.action
        sol <- ordiNAexclude(sol, d$excluded)
    }
    if (!is.null(d$subset))
        sol$subset <- d$subset
    ## drops class in c()
    sol <- c(sol,
             list(terms = d$terms,
                  terminfo = ordiTerminfo(d, d$modelframe)))
    class(sol) <- c("rda", "cca")
    sol
}