From 2e235ba5621a8e2999ef94bdea03017d1c587bf4 Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Sat, 15 Jun 2024 15:42:12 +0300 Subject: [PATCH 1/8] vegemite: invisible return table had only the last printed page --- R/vegemite.R | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/R/vegemite.R b/R/vegemite.R index f66346346..468d67298 100644 --- a/R/vegemite.R +++ b/R/vegemite.R @@ -103,8 +103,13 @@ } dimnames(tbl) <- d print(noquote(tbl)) + ## collect all pages for output table + if (exists(".tabout", inherits = FALSE)) + .tabout[,2] <- paste0(.tabout[,2], tbl[,2]) + else + .tabout <- tbl } - out <- list(sites = site.ind, species = sp.ind, table = tbl) + out <- list(sites = site.ind, species = sp.ind, table = .tabout) cat(length(out$sites), "sites,", length(out$species), "species\n") if (!is.null(usedscale)) cat("scale: ", usedscale, "\n") From 5f018a032fc91934a2527638c321574f37185f7e Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Tue, 18 Jun 2024 10:56:14 +0300 Subject: [PATCH 2/8] vegemite & tabasco can 'use' factor to order sites by classes --- R/tabasco.R | 6 ++++++ R/vegemite.R | 7 +++++++ man/vegemite.Rd | 25 +++++++++++++------------ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/R/tabasco.R b/R/tabasco.R index b2ecfc768..1dfbd5753 100644 --- a/R/tabasco.R +++ b/R/tabasco.R @@ -88,6 +88,12 @@ site.ind <- order(tmp) if (is.null(sp.ind)) sp.ind <- order(wascores(tmp, x)) + } else if (is.factor(use)) { + tmp <- as.numeric(use) + if (is.null(site.ind)) + site.ind <- order(tmp) + if (is.null(sp.ind)) + sp.ind <- order(wascores(tmp, x)) } } ## see if sp.ind is a dendrogram or hclust tree diff --git a/R/vegemite.R b/R/vegemite.R index 468d67298..ad0156088 100644 --- a/R/vegemite.R +++ b/R/vegemite.R @@ -44,6 +44,13 @@ if (is.null(sp.ind)) sp.ind <- order(wascores(tmp, x)) } + else if (is.factor(use)) { + tmp <- as.numeric(use) + if (is.null(site.ind)) + site.ind <- order(tmp) + if (is.null(sp.ind)) + sp.ind <- order(wascores(tmp, x)) + } } if (!is.null(sp.ind) && is.logical(sp.ind)) sp.ind <- seq_len(ncol(x))[sp.ind] diff --git a/man/vegemite.Rd b/man/vegemite.Rd index 131da74a2..64be82432 100644 --- a/man/vegemite.Rd +++ b/man/vegemite.Rd @@ -25,9 +25,9 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), \arguments{ \item{x}{Community data. } - \item{use}{Either a vector, or an object from \code{cca}, - \code{decorana} \emph{etc.} or \code{hclust} or a - \code{\link{dendrogram}} for ordering sites and species.} + \item{use}{Either a numeric vector or a classification factor, or an + object from \code{cca}, \code{decorana} \emph{etc.} or \code{hclust} + or a \code{\link{dendrogram}} for ordering sites and species.} \item{sp.ind, site.ind}{Species and site indices. In \code{tabasco}, these can also be \code{\link{hclust}} tree, \code{\link[cluster]{agnes}} clusterings or @@ -99,15 +99,16 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), \code{vegemite}. No dendrogram for species is displayed, except when given in \code{sp.ind}. - If \code{use} is a vector, it is used for ordering sites. If - \code{use} is an object from ordination, both sites and species are - arranged by the first axis (provided that results are available both - also for species). When \code{use} is an object from - \code{\link{hclust}}, \code{\link[cluster]{agnes}} or a - \code{\link{dendrogram}}, the sites are ordered similarly as in the - cluster dendrogram. Function \code{tabasco} re-orders the dendrogram - if \code{Rowv = TRUE} or \code{Rowv} is a vector. Such re-ordering is - not available for \code{vegemite}, but it can be done by hand using + If \code{use} is a numeric vector, it is used for ordering sites, and + if it is a factor, it is used to order sites by classes. If \code{use} + is an object from ordination, both sites and species are arranged by + the first axis (provided that results are available both also for + species). When \code{use} is an object from \code{\link{hclust}}, + \code{\link[cluster]{agnes}} or a \code{\link{dendrogram}}, the sites + are ordered similarly as in the cluster dendrogram. Function + \code{tabasco} re-orders the dendrogram if \code{Rowv = TRUE} or + \code{Rowv} is a vector. Such re-ordering is not available for + \code{vegemite}, but it can be done by hand using \code{\link{reorder.dendrogram}} or \code{\link{reorder.hclust}}. Please note that \code{\link{dendrogram}} and \code{\link{hclust}} reordering can differ: unweighted means of merged branches are used in From c560ef5cd2778a76518c5327223b9784a22d0ba4 Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Tue, 18 Jun 2024 12:08:38 +0300 Subject: [PATCH 3/8] vegemite gained arg 'diagonalize' to reorder cluster or factor 'use' Default is diagonalize = FALSE, but if TRUE dendograms or hclust trees or factors can be reordered to give a diagonal data pattern: - Trees are reordered by the first axis of correspondence analysis - Both the factor levels and sites within factor levels are reordered using first axis of cca(x, factor), with LC scores for order of levels and WA scores within levels for sites. --- R/vegemite.R | 33 ++++++++++++++++++++++++++++++++- man/vegemite.Rd | 11 ++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/R/vegemite.R b/R/vegemite.R index ad0156088..40457d7df 100644 --- a/R/vegemite.R +++ b/R/vegemite.R @@ -1,7 +1,19 @@ `vegemite` <- function (x, use, scale, sp.ind = NULL, site.ind = NULL, zero = ".", - select, ...) + select, diagonalize = FALSE, ...) { + diagOrder <- function(x = x, scale = scale, z = NULL) { + if (!missing(scale)) + x <- coverscale(x, scale = scale, character = FALSE) + ord <- cca(x, z) + ## Dendrograms need only WA scores, but ordering factors and + ## sites within factors needs WA & LC, and species scores give + ## wanted species ordering + if (is.null(z)) + scores(ord, choices = 1, display = "wa") + else + scores(ord, choices = 1, display = c("lc","wa","sp")) + } if (!missing(use)) { if (!is.list(use) && is.vector(use)) { if (is.null(site.ind)) @@ -13,12 +25,20 @@ if (inherits(use, "twins")) { use <- as.hclust(use) } + if (diagonalize) { + wts <- diagOrder(x, scale) + use <- reorder(use, wts) + } if (is.null(site.ind)) site.ind <- use$order if (is.null(sp.ind)) sp.ind <- order(wascores(order(site.ind), x)) } else if (inherits(use, "dendrogram")) { + if (diagonalize) { + wts <- diagOrder(x, scale) + use <- reorder(use, wts) + } if (is.null(site.ind)) { site.ind <- 1:nrow(x) names(site.ind) <- rownames(x) @@ -46,6 +66,17 @@ } else if (is.factor(use)) { tmp <- as.numeric(use) + if (diagonalize) { + ord <- diagOrder(x, scale, use) + if (cor(tmp, ord$constraints, method = "spearman") < 0) { + ord$constraints <- -ord$constraints + ord$sites <- -ord$sites + ord$species <- -ord$species + } + ## order factors and sites within factor levels + site.ind <- order(ord$constraints, ord$sites) + sp.ind <- order(ord$species) + } if (is.null(site.ind)) site.ind <- order(tmp) if (is.null(sp.ind)) diff --git a/man/vegemite.Rd b/man/vegemite.Rd index 64be82432..68ea8c2ed 100644 --- a/man/vegemite.Rd +++ b/man/vegemite.Rd @@ -15,7 +15,8 @@ analysis. } \usage{ -vegemite(x, use, scale, sp.ind, site.ind, zero=".", select ,...) +vegemite(x, use, scale, sp.ind, site.ind, zero=".", select, + diagonalize = FALSE, ...) tabasco(x, use, sp.ind = NULL, site.ind = NULL, select, Rowv = TRUE, Colv = TRUE, labRow = NULL, labCol = NULL, scale, col = heat.colors(12), ...) @@ -38,6 +39,14 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), sites. The order of indices does not influence results, but you must specify \code{use} or \code{site.ind} to reorder sites. } + + \item{diagonalize}{Try to re-order \code{vegemite} table to a diagonal + pattern when using classification factor or a dendrogram. + Dendrograms are re-orded by the first axis of correspondence + analysis. Factor levels and sites within factor levels are + re-ordered by the first axis of (constrained) correspondence + analysis.} + \item{Rowv, Colv}{Re-order dendrograms for the rows (sites) or columns (species) of \code{x}. If the \code{Rowv = TRUE}, row dendrograms are ordered by the first axis of correspondence From 446031f4b1ced03f1bc78cef77ceefc5403de3c2 Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Tue, 18 Jun 2024 12:33:38 +0300 Subject: [PATCH 4/8] tabasco reorders factor 'use' similarly as vegemite (but as default) --- R/tabasco.R | 11 +++++++++++ man/vegemite.Rd | 15 ++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/R/tabasco.R b/R/tabasco.R index 1dfbd5753..02236460b 100644 --- a/R/tabasco.R +++ b/R/tabasco.R @@ -90,6 +90,17 @@ sp.ind <- order(wascores(tmp, x)) } else if (is.factor(use)) { tmp <- as.numeric(use) + if (isTRUE(Rowv)) { # reorder factor levels & sites within factors + ord <- scores(cca(x, use), + choices=1, display = c("lc","wa","sp")) + if (cor(tmp, ord$constraints, method = "spearman") < 0) { + ord$constraints <- -ord$constraints + ord$sites <- -ord$sites + ord$species <- -ord$species + } + site.ind <- order(ord$constraints, ord$sites) + sp.ind <- order(ord$species) + } if (is.null(site.ind)) site.ind <- order(tmp) if (is.null(sp.ind)) diff --git a/man/vegemite.Rd b/man/vegemite.Rd index 68ea8c2ed..ce708a758 100644 --- a/man/vegemite.Rd +++ b/man/vegemite.Rd @@ -47,13 +47,14 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), re-ordered by the first axis of (constrained) correspondence analysis.} - \item{Rowv, Colv}{Re-order dendrograms for the rows (sites) or - columns (species) of \code{x}. If the \code{Rowv = TRUE}, row - dendrograms are ordered by the first axis of correspondence - analysis, and when \code{Colv = TRUE} column dendrograms by the - weighted average (\code{\link{wascores}}) of the row order. - Alternatively, the arguments can be vectors that are used to - reorder the dendrogram. } + \item{Rowv, Colv}{Re-order factors or dendrograms for the rows (sites) + or columns (species) of \code{x}. If \code{Rowv = TRUE}, factor + levels and sites within factors are re-ordered to show diagonal + pattern using CCA. If \code{Rowv = TRUE}, row dendrograms are + ordered by the first axis of correspondence analysis, and when + \code{Colv = TRUE} column dendrograms by the weighted average + (\code{\link{wascores}}) of the row order. Alternatively, the + arguments can be vectors that are used to reorder the dendrogram. } \item{labRow, labCol}{character vectors with row and column labels used in the \code{\link{heatmap}} instead of the default. NB., the From fb0889698023b6faac3e0d40419e8b5be4e6c9e9 Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Tue, 18 Jun 2024 12:51:42 +0300 Subject: [PATCH 5/8] vegemite derived sp.index is now based on coverscale'd data Changes in examples with varespec where reordering is now based on tabulated coverscale data instead of raw cover percentages. --- R/vegemite.R | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/R/vegemite.R b/R/vegemite.R index 40457d7df..1f270bded 100644 --- a/R/vegemite.R +++ b/R/vegemite.R @@ -2,50 +2,41 @@ function (x, use, scale, sp.ind = NULL, site.ind = NULL, zero = ".", select, diagonalize = FALSE, ...) { - diagOrder <- function(x = x, scale = scale, z = NULL) { - if (!missing(scale)) - x <- coverscale(x, scale = scale, character = FALSE) - ord <- cca(x, z) - ## Dendrograms need only WA scores, but ordering factors and - ## sites within factors needs WA & LC, and species scores give - ## wanted species ordering - if (is.null(z)) - scores(ord, choices = 1, display = "wa") - else - scores(ord, choices = 1, display = c("lc","wa","sp")) - } if (!missing(use)) { + ## derived index should be based on transformed & tabulated data + xprime <- if (missing(scale)) x + else coverscale(x, scale = scale, character = FALSE) if (!is.list(use) && is.vector(use)) { if (is.null(site.ind)) site.ind <- order(use) if (is.null(sp.ind)) - sp.ind <- order(wascores(use, x)) + sp.ind <- order(wascores(use, xprime)) } else if (inherits(use, c("hclust", "twins"))) { if (inherits(use, "twins")) { use <- as.hclust(use) } if (diagonalize) { - wts <- diagOrder(x, scale) + wts <- scores(cca(xprime), choices=1, display = "wa") use <- reorder(use, wts) } if (is.null(site.ind)) site.ind <- use$order if (is.null(sp.ind)) - sp.ind <- order(wascores(order(site.ind), x)) + sp.ind <- order(wascores(order(site.ind), xprime)) } else if (inherits(use, "dendrogram")) { if (diagonalize) { - wts <- diagOrder(x, scale) + wts <- scores(cca(xprime), choices=1, display = "wa") use <- reorder(use, wts) } if (is.null(site.ind)) { - site.ind <- 1:nrow(x) + site.ind <- seq_len(nrow(x)) names(site.ind) <- rownames(x) site.ind <- site.ind[labels(use)] } if (is.null(sp.ind)) - sp.ind <- order(wascores(order(site.ind), x)) + sp.ind <- order(wascores(order(site.ind), xprime)) } else if (is.list(use)) { tmp <- scores(use, choices = 1, display = "sites") @@ -55,19 +46,20 @@ sp.ind <- try(order(scores(use, choices = 1, display = "species"))) if (inherits(sp.ind, "try-error")) - sp.ind <- order(wascores(tmp, x)) + sp.ind <- order(wascores(tmp, xprime)) } else if (is.matrix(use)) { tmp <- scores(use, choices = 1, display = "sites") if (is.null(site.ind)) site.ind <- order(tmp) if (is.null(sp.ind)) - sp.ind <- order(wascores(tmp, x)) + sp.ind <- order(wascores(tmp, xprime)) } else if (is.factor(use)) { tmp <- as.numeric(use) if (diagonalize) { - ord <- diagOrder(x, scale, use) + ord <- scores(cca(xprime, use), choices = 1, + display = c("lc","wa","sp")) if (cor(tmp, ord$constraints, method = "spearman") < 0) { ord$constraints <- -ord$constraints ord$sites <- -ord$sites @@ -80,9 +72,9 @@ if (is.null(site.ind)) site.ind <- order(tmp) if (is.null(sp.ind)) - sp.ind <- order(wascores(tmp, x)) + sp.ind <- order(wascores(tmp, xprime)) } - } + } # end of handling 'use' if (!is.null(sp.ind) && is.logical(sp.ind)) sp.ind <- seq_len(ncol(x))[sp.ind] if (!is.null(site.ind) && is.logical(site.ind)) From 37b645055572fbf175e04fac6c6ae1bbca9e768c Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Wed, 19 Jun 2024 11:15:03 +0300 Subject: [PATCH 6/8] vegemite & tabasco: update help page --- man/vegemite.Rd | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/man/vegemite.Rd b/man/vegemite.Rd index ce708a758..3147603f7 100644 --- a/man/vegemite.Rd +++ b/man/vegemite.Rd @@ -75,9 +75,9 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), Data maximum in the \code{select}ed subset will be used if this is missing.} - \item{character}{Return character codes suitable for + \item{character}{Return character codes suitable for tabulation in \code{vegemite}. If \code{FALSE}, returns corresponding - integers.} + integers suitable for numerical analysis.} \item{\dots}{Arguments passed to \code{coverscale} (i.e., \code{maxabund}) in \code{vegemite} and to \code{\link{heatmap}} in \code{tabasco}.} @@ -106,26 +106,27 @@ coverscale(x, scale=c("Braun.Blanquet", "Domin", "Hult", "Hill", "fix","log"), \code{\link{hclust}}, \code{\link[cluster]{agnes}} and \code{\link{dendrogram}} must be for sites. The dendrogram is displayed above the sites in \code{tabasco}, but is not shown in - \code{vegemite}. No dendrogram for species is displayed, except - when given in \code{sp.ind}. - - If \code{use} is a numeric vector, it is used for ordering sites, and - if it is a factor, it is used to order sites by classes. If \code{use} - is an object from ordination, both sites and species are arranged by - the first axis (provided that results are available both also for - species). When \code{use} is an object from \code{\link{hclust}}, - \code{\link[cluster]{agnes}} or a \code{\link{dendrogram}}, the sites - are ordered similarly as in the cluster dendrogram. Function - \code{tabasco} re-orders the dendrogram if \code{Rowv = TRUE} or - \code{Rowv} is a vector. Such re-ordering is not available for - \code{vegemite}, but it can be done by hand using - \code{\link{reorder.dendrogram}} or \code{\link{reorder.hclust}}. - Please note that \code{\link{dendrogram}} and \code{\link{hclust}} - reordering can differ: unweighted means of merged branches are used in - \code{\link{dendrogram}}, but weighted means (= means of leaves of the - cluster) are used in \code{\link{reorder.hclust}}. In all cases where - species scores are missing, species are ordered by their weighted - averages (\code{\link{wascores}}) on site order. + \code{vegemite}. In \code{tabasco} the species dendrogram can be + given in \code{sp.ind}. + + If \code{use} is a numeric vector, it is used for ordering sites, + and if it is a factor, it is used to order sites by classes. If + \code{use} is an object from ordination, both sites and species are + arranged by the first axis (provided that results are available also + for species). When \code{use} is an object from + \code{\link{hclust}}, \code{\link[cluster]{agnes}} or a + \code{\link{dendrogram}}, the sites are ordered similarly as in the + cluster dendrogram. Function \code{tabasco} re-orders the + dendrogram to give a diagonal pattern if \code{Rowv = + TRUE}. Alternatively, if \code{Rowv} is a vector its values are used + to re-order dendrogram. With \code{diagonalize = TRUE} the + dendrogram will be re-ordered in \code{vegemite} to give a diagonal + pattern. If \code{use} is a factor, its levels and sites within + levels will be reordered to give a diagonal pattern if + \code{diagonalize = TRUE} in \code{vegemite} or \code{Rowv = TRUE} + in \code{tabasco}. In all cases where species scores are missing, + species are ordered by their weighted averages + (\code{\link{wascores}}) on site order or site value. Species and sites can be ordered explicitly giving their indices or names in parameters \code{sp.ind} and \code{site.ind}. If these are From a728e48aaa1f8e56aa61a0629e29494a4a87abfb Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Wed, 19 Jun 2024 11:18:08 +0300 Subject: [PATCH 7/8] update tests/Examples: vegemite uses coverscale in calculation Ordering and calculations were based on raw input data (percentages in varespec), but now uses the same coverscale as is tabulated. --- tests/Examples/vegan-Ex.Rout.save | 58 +++++++++++++++---------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/tests/Examples/vegan-Ex.Rout.save b/tests/Examples/vegan-Ex.Rout.save index ece7950c7..755f024f5 100644 --- a/tests/Examples/vegan-Ex.Rout.save +++ b/tests/Examples/vegan-Ex.Rout.save @@ -8715,49 +8715,49 @@ scale: Hult 1 111 1211221212222 431567380922149306254578 - Flavniva 21.111.111....11........ Cladamau .1.1...1................ - Stersp 111211111....111.1.111.1 - Polypili ..111..1......111..1.... - Diphcomp .1...111.1...........1.. + Flavniva 21.111.111....11........ Cladphyl ..1.....11...1.......... - Cladrang 344544332133111223121121 - Cladcerv 1.........1..........1.. + Diphcomp .1...111.1...........1.. Cladstel 454121215555213111111.1. + Cladrang 344544332133111223121121 Cladarbu 322344331111132222121111 - Vacculig 11...2.1........1.1..111 - Callvulg 111.1.311.11.1..11111... Icmaeric ...1.1.......1...1...... - Cladsp 1...1.11.1......111..11. - Cladcocc 1111111111...1111111.1.1 - Pinusylv 1.111.1111111111111111.1 + Callvulg 111.1.311.11.1..11111... + Polypili ..111..1......111..1.... + Nepharct .1...1.1........1....1.. + Stersp 111211111....111.1.111.1 Cladchlo .1..111.111.1.11..1.1... - Cetrisla 1.1...1.11.111...1.111.1 - Cladfimb 11.11111111111111111.111 - Peltapht ..1...11.......1.....11. + Cladcerv 1.........1..........1.. Cetreric 11.1111111...1..111111.. - Cladgrac 11111111.111111111111111 - Pohlnuta 111..11111.1111111111.11 - Ptilcili .11.1.11.11.2.11.1111111 - Barbhatc ......1.....1.11......1. + Cladcocc 1111111111...1111111.1.1 Cladcorn 111111111111111111111111 - Vaccviti 113122132323412331223232 Cladcris 111111111111111111111111 - Empenigr 111111122122312322111231 - Cladbotr ......1.....1.111...1.11 - Betupube ............1.....1..1.. - Cladunci 111111111111131111112111 + Cladfimb 11.11111111111111111.111 + Cladgrac 11111111.111111111111111 + Polyjuni 1.111111111.111111.112.1 + Vacculig 11...2.1........1.1..111 + Pinusylv 1.111.1111111111111111.1 + Pohlnuta 111..11111.1111111111.11 Claddefo 11.111111111111111111111 + Cladunci 111111111111131111112111 + Cladsp 1...1.11.1......111..11. + Peltapht ..1...11.......1.....11. + Vaccviti 113122132323412331223232 + Cetrisla 1.1...1.11.111...1.111.1 Dicrpoly ..11.1..11..1.1111.11..1 - Polycomm ............111......11. - Rhodtome ......1.....1.....1...11 - Polyjuni 1.111111111.111111.112.1 + Empenigr 111111122122312322111231 + Ptilcili .11.1.11.11.2.11.1111111 Dicrfusc 11111111111112111442.211 + Barbhatc ......1.....1.11......1. + Descflex 1....1......1.1...1..111 Pleuschr 113111111111123333444455 Vaccmyrt ......1..1..311..111..13 - Nepharct .1...1.1........1....1.. + Cladbotr ......1.....1.111...1.11 + Rhodtome ......1.....1.....1...11 + Polycomm ............111......11. + Betupube ............1.....1..1.. Dicrsp ......1....11...111133.1 - Descflex 1....1......1.1...1..111 Hylosple ................1....122 24 sites, 44 species scale: Hult @@ -8969,7 +8969,7 @@ Procrustes sum of squares: > cleanEx() > options(digits = 7L) > base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n") -Time elapsed: 8.54 0.277 8.841 0 0 +Time elapsed: 8.598 0.302 8.931 0 0 > grDevices::dev.off() null device 1 From 1ae7c57bf22f5102389af0b2623f57fd3adff126 Mon Sep 17 00:00:00 2001 From: Jari Oksanen Date: Wed, 19 Jun 2024 11:30:33 +0300 Subject: [PATCH 8/8] NEWS about vegemite & tabasco --- NEWS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/NEWS.md b/NEWS.md index 0cc5d9666..2148f7b26 100644 --- a/NEWS.md +++ b/NEWS.md @@ -46,10 +46,22 @@ * `rda` and `cca` return centroids for factor levels also when called without formula, for instance `cca(dune, dune.env)`. +* `vegemite` and `tabasco` can now `use` a factor to show a + classification. The factor levels and sites within levels can be + reordered to give a diagonal pattern, as default in code `tabasco` + and in `vegemite` with new argument `diagonalize = TRUE` (defaults + `FALSE`). With the same argument, `vegemite` can also reorder + dendrogram (or tree) to give a diagonal pattern. If `coverscale` is + used, all internal calculations for ordering rows and columns will + be based on scaled data. + ## Bug Fixes * `summary.ordihull` failed if input data were not two-dimensional. +* `vegemite` returned only the last page of multi-page table in its + (invisible) return object. + ## Deprecated and Defunct * Disabled use of `summary` to get ordination scores: use `scores`!