matrix or data frame of functional traits. Traits can be numeric, ordered, or factor. Binary traits should be numeric and only contain 0 and 1. character traits will be converted to factor. NAs are tolerated.
x can also be a species-by-species distance matrix of class dist, in which case NAs are not allowed.
When there is only one trait, x can be also be a numeric vector, an ordered factor, or a unordered factor.
In all cases, species labels are required.
.
a
matrix containing the abundances of the species in x (or presence-absence, i.e. 0 or 1). Rows are sites and species are columns. Can be missing, in which case dbFD assumes that there is only one community with equal abundances of all species. NAs will be replaced by 0.
The number of species (columns) in a must match the number of species (rows) in x. In addition, the species labels in a and x must be identical and in the same order.
w
vector listing the weights for the traits in x. Can be missing, in which case all traits have equal weights.
w.abun
logical; should FDis, Rao's Q, FEve, FDiv, and CWM be weighted by the relative abundances of the species?
stand.x
logical; if all traits are numeric, should they be standardized to mean 0 and unit variance? If not all traits are numeric, Gower's (1971) standardization by the range is automatically used; see gowdis for more details.
ord
character string specifying the method to be used for ordinal traits (i.e. ordered). "podani" refers to Eqs. 2a-b of Podani (1999), while "metric" refers to his Eq. 3. Can be abbreviated. See gowdis for more details.
asym.bin
vector listing the asymmetric binary variables in x. See gowdis for more details.
corr
character string specifying the correction method to use when the species-by-species distance matrix cannot be represented in a Euclidean space. Options are "sqrt", "cailliez", "lingoes", or "none". Can be abbreviated. Default is "sqrt". See ‘details’ section.
calc.FRic
logical; should FRic be computed?
m
the number of PCoA axes to keep as ‘traits’ for calculating FRic (when FRic is measured as the convex hull volume) and FDiv. Options are: any integer >1, "min" (maximum number of traits that allows the s >= 2^t condition to be met, where s is the number of species and t the number of traits), or "max" (maximum number of axes that allows the s > t condition to be met). See ‘details’ section.
stand.FRic
logical; should FRic be standardized by the ‘global’ FRic that include all species, so that FRic is constrained between 0 and 1?
scale.RaoQ
logical; should Rao's Q be scaled by its maximal value over all frequency distributions? See divc.
calc.FGR
logical; should FGR be computed?
clust.type
character string specifying the clustering method to be used to create the dendrogram of species for FGR. Options are "ward", "single", "complete", "average", "mcquitty", "median", "centroid", and "kmeans". For "kmeans", other arguments also apply (km.inf.fr, km.sup.gr, km.iter, and km.crit). See hclust and cascadeKM for more details.
km.inf.gr
the number of groups for the partition with the smallest number of groups of the cascade (min). Only applies if calc.FGR is TRUE and clust.type is "kmeans". See cascadeKM for more details.
km.sup.gr
the number of groups for the partition with the largest number of groups of the cascade (max). Only applies if calc.FGR is TRUE and clust.type is "kmeans". See cascadeKM for more details.
km.iter
the number of random starting configurations for each value of K. Only applies if calc.FGR is TRUE and clust.type is "kmeans". See cascadeKM for more details.
km.crit
criterion used to select the best partition. The default value is "calinski" (Calinski-Harabasz 1974). The simple structure index "ssi" is also available. Only applies if calc.FGR is TRUE and clust.type is "kmeans". Can be abbreviated. See cascadeKM for more details.
calc.CWM
logical; should the community-level weighted means of trait values (CWM) be calculated? Can be abbreviated. See functcomp for more details.
CWM.type
character string indicating how nominal, binary and ordinal traits should be handled for CWM. See functcomp for more details.
calc.FDiv
logical; should FDiv be computed?
dist.bin
only applies when x is a single unordered factor, in which case x is coded using dummy variables. dist.bin is an integer between 1 and 10 specifying the appropriate distance measure for binary data. 2 (the default) refers to the simple matching coefficient (Sokal and Michener 1958). See dist.binary for the other options.
print.pco
logical; should the eigenvalues and PCoA axes be returned?
messages
logical; should warning messages be printed in the console?
Details
Typical usage is
dbFD(x, a, dots)
If x is a matrix or a data frame that contains only continuous traits, no NAs, and that no weights are specified (i.e. w is missing), a species-species Euclidean distance matrix is computed via dist. Otherwise, a Gower dissimilarity matrix is computed via gowdis. If x is a distance matrix, it is taken as is.
When x is a single trait, species with NAs are first excluded to avoid NAs in the distance matrix. If x is a single continuous trait (i.e. of class numeric), a species-species Euclidean distance matrix is computed via dist. If x is a single ordinal trait (i.e. of class ordered), gowdis is used and argument ord applies. If x is a single nominal trait (i.e. an unordered factor), the trait is converted to dummy variables and a distance matrix is computed via dist.binary, following argument dist.bin.
Once the species-species distance matrix is obtained, dbFD checks whether it is Euclidean. This is done via is.euclid. PCoA axes corresponding to negative eigenvalues are imaginary axes that cannot be represented in a Euclidean space, but simply ignoring these axes would lead to biased estimations of FD. Hence in dbFD one of four correction methods are used, following argument corr. "sqrt" simply takes the square root of the distances. However, this approach does not always work for all coefficients, in which case dbFD will stop and tell the user to select another correction method. "cailliez" refers to the approach described by Cailliez (1983) and is implemented via cailliez. "lingoes" refers to the approach described by Lingoes (1971) and is implemented via lingoes. "none" creates a distance matrix with only the positive eigenvalues of the Euclidean representation via quasieuclid. See Legendre and Legendre (1998) and Legendre and Anderson (1999) for more details on these corrections.
Functional group richness (FGR) is based on the classification of the species by the user from visual inspection of a dengrogram. Method "kmeans" is also available by calling cascadeKM. In that case, the Calinski-Harabasz (1974) criterion or the simple structure index (SSI) can be used to estimate the number of functional groups; see cascadeKM for more details. FGR returns the number of functional groups per community, as well as the abundance of each group in each community.
The community-level means of trait values (CWM) is an index of functional composition (Lavorel et al. 2008), and is computed via functcomp. Species with NAs for a given trait are excluded for that trait.
Value
nbsp
vector listing the number of species in each community
sing.sp
vector listing the number of functionally singular species in each community. If all species are functionally different, sing.sp will be identical to nbsp.
FRic
vector listing the FRic of each community
qual.FRic
quality of the reduced-space representation required to compute FRic and FDiv.
FEve
vector listing the FEve of each community
FDiv
vector listing the FDiv of each community. Only returned if calc.FDiv is TRUE.
FDis
vector listing the FDis of each community
RaoQ
vector listing the Rao's quadratic entropy (Q) of each community
FGR
vector listing the FGR of each community. Only returned if calc.FGR is TRUE.
spfgr
vector specifying functional group membership for each species. Only returned if calc.FGR is TRUE.
gr.abun
matrix containing the abundances of each functional group in each community. Only returned if calc.FGR is TRUE.
CWM
data frame containing the community-level weighted trait means (CWM). Only returned if calc.CWM is TRUE.
x.values
eigenvalues from the PCoA. Only returned if print.pco is TRUE.
x.axes
PCoA axes. Only returned if print.pco is TRUE.
Warning
Users often report that dbFD crashed during their analysis. Generally this occurs under Windows, and is almost always due to the computation of convex hull volumes. Possible solutions are to choose calc.FRic = "FALSE", or to reduce the dimensionality of the trait matrix using the "m" argument.
Anderson, M. J. (2006) Distance-based tests for homogeneity of multivariate dispersions. Biometrics62:245-253.
Anderson, M. J., K. E. Ellingsen and B. H. McArdle (2006) Multivariate dispersion as a measure of beta diversity. Ecology Letters9:683-693.
Botta-Dukát, Z. (2005) Rao's quadratic entropy as a measure of functional diversity based on multiple traits. Journal of Vegetation Science16:533-540.
Cailliez, F. (1983) The analytical solution of the additive constant problem. Psychometrika48:305-310.
Calinski, T. and J. Harabasz (1974) A dendrite method for cluster analysis. Communications in Statistics3:1-27.
Gower, J. C. (1971) A general coefficient of similarity and some of its properties. Biometrics27:857-871.
Legendre, P. and M. J. Anderson (1999) Distance-based redundancy analysis: testing multispecies responses in multifactorial ecological experiments. Ecological Monographs69:1-24.
Legendre, P. and L. Legendre (1998) Numerical Ecology. 2nd English edition. Amsterdam: Elsevier.
Lingoes, J. C. (1971) Some boundary conditions for a monotone analysis of symmetric matrices. Psychometrika36:195-203.
Podani, J. (1999) Extending Gower's general coefficient of similarity to ordinal characters. Taxon48:331-340.
Sokal, R. R. and C. D. Michener (1958) A statistical method for evaluating systematic relationships. The University of Kansas Scientific Bulletin38:1409-1438.
# mixed trait types, NA's
ex1 <- dbFD(dummy$trait, dummy$abun)
ex1
# add variable weights
# 'cailliez' correction is used because 'sqrt' does not work
w<-c(1, 5, 3, 2, 5, 2, 6, 1)
ex2 <- dbFD(dummy$trait, dummy$abun, w, corr="cailliez")
# if 'x' is a distance matrix
trait.d <- gowdis(dummy$trait)
ex3 <- dbFD(trait.d, dummy$abun)
ex3
# one numeric trait, one NA
num1 <- dummy$trait[,1] ; names(num1) <- rownames(dummy$trait)
ex4 <- dbFD(num1, dummy$abun)
ex4
# one ordered trait, one NA
ord1 <- dummy$trait[,5] ; names(ord1) <- rownames(dummy$trait)
ex5 <- dbFD(ord1, dummy$abun)
ex5
# one nominal trait, one NA
fac1 <- dummy$trait[,3] ; names(fac1) <- rownames(dummy$trait)
ex6 <- dbFD(fac1, dummy$abun)
ex6
# example with real data from New Zealand short-tussock grasslands
# 'lingoes' correction used because 'sqrt' does not work in that case
ex7 <- dbFD(tussock$trait, tussock$abun, corr = "lingoes")
## Not run:
# calc.FGR = T, 'ward'
ex7 <- dbFD(dummy$trait, dummy$abun, calc.FGR = T)
ex7
# calc.FGR = T, 'kmeans'
ex8 <- dbFD(dummy$trait, dummy$abun, calc.FGR = T,
clust.type = "kmeans")
ex8
# ward clustering to compute FGR
ex9 <- dbFD(tussock$trait, tussock$abun,
corr = "cailliez", calc.FGR = TRUE, clust.type = "ward")
# choose 'g' for number of groups
# 6 groups seems to make good ecological sense
ex9
# however, calinksi criterion in 'kmeans' suggests
# that 6 groups may not be optimal
ex10 <- dbFD(tussock$trait, tussock$abun, corr = "cailliez",
calc.FGR = TRUE, clust.type = "kmeans", km.sup.gr = 10)
## End(Not run)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(FD)
Loading required package: ade4
Loading required package: ape
Loading required package: geometry
Loading required package: magic
Loading required package: abind
Loading required package: vegan
Loading required package: permute
Loading required package: lattice
This is vegan 2.4-0
Attaching package: 'vegan'
The following object is masked from 'package:ade4':
cca
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/FD/dbFD.Rd_%03d_medium.png", width=480, height=480)
> ### Name: dbFD
> ### Title: Distance-Based Functional Diversity Indices
> ### Aliases: dbFD
> ### Keywords: multivariate
>
> ### ** Examples
>
> # mixed trait types, NA's
> ex1 <- dbFD(dummy$trait, dummy$abun)
Species x species distance matrix was not Euclidean. 'sqrt' correction was applied.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FRic: To respect s > t, FRic could not be calculated for communities with <3 functionally singular species.
FRic: Dimensionality reduction was required. The last 5 PCoA axes (out of 7 in total) were removed.
FRic: Quality of the reduced-space representation (based on corrected distance matrix) = 0.6108352
FDiv: Could not be calculated for communities with <3 functionally singular species.
> ex1
$nbsp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 2 3 5 3 4 5 4
$sing.sp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 2 3 5 3 4 5 4
$FRic
com1 com2 com3 com4 com5 com6
0.174201349 0.102097174 0.002157642 NA 0.143151204 0.231083703
com7 com8 com9 com10
0.073683375 0.174220613 0.337446205 0.228904118
$qual.FRic
[1] 0.6108352
$FEve
com1 com2 com3 com4 com5 com6 com7 com8
0.8432334 0.4628635 0.8659657 NA 0.9081209 0.8651734 0.7681991 0.7606650
com9 com10
0.7994638 0.4944601
$FDiv
com1 com2 com3 com4 com5 com6 com7 com8
0.8429221 0.8593250 0.6303031 NA 0.7631346 0.8966687 0.8356095 0.8681163
com9 com10
0.7015118 0.9712554
$FDis
com1 com2 com3 com4 com5 com6 com7 com8
0.3481687 0.1670560 0.2375808 0.1146261 0.3211366 0.3302330 0.2532751 0.2877931
com9 com10
0.3421687 0.3503927
$RaoQ
com1 com2 com3 com4 com5 com6 com7
0.12835440 0.04063622 0.06497224 0.03003235 0.11858388 0.11738479 0.07868047
com8 com9 com10
0.09308505 0.12431265 0.12490783
$CWM
num1 num2 fac1 fac2 ord1 ord2 bin1 bin2
com1 5.887500 4.037500 C X 2 6 1 1
com2 4.212500 5.562500 B Z 1 3 0 1
com3 5.716667 6.166667 A Z 1 3 0 1
com4 9.000000 2.575000 C Y 5 3 1 1
com5 4.500000 3.050000 C X 2 7 0 0
com6 5.095238 5.528571 C Z 2 1 0 1
com7 7.009091 5.427273 A Z 1 1 0 1
com8 5.245455 3.572727 C X 2 6 1 0
com9 6.870000 4.245455 A X 3 2 0 1
com10 7.427273 3.783333 B X 3 2 1 0
>
> # add variable weights
> # 'cailliez' correction is used because 'sqrt' does not work
> w<-c(1, 5, 3, 2, 5, 2, 6, 1)
> ex2 <- dbFD(dummy$trait, dummy$abun, w, corr="cailliez")
Species x species distance matrix was not Euclidean. Cailliez correction was applied.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FRic: To respect s > t, FRic could not be calculated for communities with <3 functionally singular species.
FRic: Dimensionality reduction was required. The last 4 PCoA axes (out of 6 in total) were removed.
FRic: Quality of the reduced-space representation (based on corrected distance matrix) = 0.6618924
FDiv: Could not be calculated for communities with <3 functionally singular species.
>
> # if 'x' is a distance matrix
> trait.d <- gowdis(dummy$trait)
> ex3 <- dbFD(trait.d, dummy$abun)
Species x species distance matrix was not Euclidean. 'sqrt' correction was applied.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FRic: To respect s > t, FRic could not be calculated for communities with <3 functionally singular species.
FRic: Dimensionality reduction was required. The last 5 PCoA axes (out of 7 in total) were removed.
FRic: Quality of the reduced-space representation (based on corrected distance matrix) = 0.6108352
FDiv: Could not be calculated for communities with <3 functionally singular species.
CWM: When 'x' is a distance matrix, CWM cannot be calculated.
> ex3
$nbsp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 2 3 5 3 4 5 4
$sing.sp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 2 3 5 3 4 5 4
$FRic
com1 com2 com3 com4 com5 com6
0.174201349 0.102097174 0.002157642 NA 0.143151204 0.231083703
com7 com8 com9 com10
0.073683375 0.174220613 0.337446205 0.228904118
$qual.FRic
[1] 0.6108352
$FEve
com1 com2 com3 com4 com5 com6 com7 com8
0.8432334 0.4628635 0.8659657 NA 0.9081209 0.8651734 0.7681991 0.7606650
com9 com10
0.7994638 0.4944601
$FDiv
com1 com2 com3 com4 com5 com6 com7 com8
0.8429221 0.8593250 0.6303031 NA 0.7631346 0.8966687 0.8356095 0.8681163
com9 com10
0.7015118 0.9712554
$FDis
com1 com2 com3 com4 com5 com6 com7 com8
0.3481687 0.1670560 0.2375808 0.1146261 0.3211366 0.3302330 0.2532751 0.2877931
com9 com10
0.3421687 0.3503927
$RaoQ
com1 com2 com3 com4 com5 com6 com7
0.12835440 0.04063622 0.06497224 0.03003235 0.11858388 0.11738479 0.07868047
com8 com9 com10
0.09308505 0.12431265 0.12490783
>
> # one numeric trait, one NA
> num1 <- dummy$trait[,1] ; names(num1) <- rownames(dummy$trait)
> ex4 <- dbFD(num1, dummy$abun)
Warning: Species with missing trait values have been excluded.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FDis: Equals 0 in communities with only one functionally singular species.
FRic: Only one continuous trait or dimension in 'x'. FRic was measured as the range, NOT as the convex hull volume.
FDiv: Cannot not be computed when 'x' contains one single continuous trait or dimension.
> ex4
$nbsp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 1 2 5 3 4 4 3
$sing.sp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 3 3 1 2 5 3 4 4 3
$FRic
com1 com2 com3 com4 com5 com6 com7 com8
2.383518 1.106633 2.383518 0.000000 1.106633 2.000453 2.468644 1.745076
com9 com10
2.468644 1.617387
$qual.FRic
[1] 1
$FEve
com1 com2 com3 com4 com5 com6 com7 com8
0.9580153 0.7719298 0.3862661 NA NA 0.7473561 0.3103448 0.9291553
com9 com10
0.4596774 0.2320442
$FDis
com1 com2 com3 com4 com5 com6 com7 com8
0.5666176 0.2154743 0.9316530 0.0000000 0.5533167 0.6057240 0.8843219 0.4319599
com9 com10
0.9372334 0.2420101
$RaoQ
com1 com2 com3 com4 com5 com6 com7 com8
0.6111583 0.1043648 0.9948168 0.0000000 0.3061594 0.4864521 1.0106899 0.2557192
com9 com10
1.1025543 0.1914002
$CWM
Trait
com1 5.887500
com2 4.212500
com3 5.716667
com4 9.000000
com5 4.500000
com6 5.095238
com7 7.009091
com8 5.245455
com9 6.870000
com10 7.427273
>
> # one ordered trait, one NA
> ord1 <- dummy$trait[,5] ; names(ord1) <- rownames(dummy$trait)
> ex5 <- dbFD(ord1, dummy$abun)
Warning: Species with missing trait values have been excluded.
Species x species distance matrix was not Euclidean. 'sqrt' correction was applied.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FRic: Only one ordinal trait present in 'x'. FRic was measured as the range of the ranks, NOT as the convex hull volume.
FDiv: Cannot be computed when 'x' is a single ordinal trait.
Warning messages:
1: In is.euclid(x.dist) : Zero distance(s)
2: In is.euclid(x.dist) : Zero distance(s)
3: In is.euclid(x.dist2) : Zero distance(s)
4: In is.euclid(x.dist2) : Zero distance(s)
> ex5
$nbsp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
3 3 3 2 3 4 2 4 4 3
$sing.sp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
2 2 3 2 3 3 2 3 3 3
$FRic
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
2.0 2.0 4.0 1.5 5.5 4.0 4.0 4.0 5.5 5.5
$qual.FRic
[1] 1
$FEve
com1 com2 com3 com4 com5 com6 com7 com8
NA NA 0.8571429 NA 0.6496753 0.5000000 NA 0.5000000
com9 com10
0.5000000 0.7320508
$FDis
com1 com2 com3 com4 com5 com6 com7
0.04897959 0.04375000 0.26952430 0.04375000 0.35254452 0.09112762 0.30000000
com8 com9 com10
0.10529535 0.26094486 0.15491120
$RaoQ
com1 com2 com3 com4 com5 com6
0.004897959 0.004375000 0.065555556 0.004375000 0.133125000 0.016172840
com7 com8 com9 com10
0.090000000 0.013884298 0.097200000 0.053125000
$CWM
Trait
com1 2
com2 1
com3 1
com4 5
com5 1
com6 2
com7 1
com8 2
com9 3
com10 3
>
> # one nominal trait, one NA
> fac1 <- dummy$trait[,3] ; names(fac1) <- rownames(dummy$trait)
> ex6 <- dbFD(fac1, dummy$abun)
Warning: Species with missing trait values have been excluded.
FEVe: Could not be calculated for communities with <3 functionally singular species.
FRic: Only categorical and/or ordinal trait(s) present in 'x'. FRic was measured as the number of unique trait combinations, NOT as the convex hull volume.
FDiv: Cannot be computed when only categorical and/or ordinal trait(s) present in 'x'.
Warning messages:
1: In is.euclid(x.dist) : Zero distance(s)
2: In is.euclid(x.dist) : Zero distance(s)
> ex6
$nbsp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
4 2 2 2 3 4 3 3 5 3
$sing.sp
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
2 2 2 2 2 3 2 2 3 3
$FRic
com1 com2 com3 com4 com5 com6 com7 com8 com9 com10
2 2 2 2 2 3 2 2 3 3
$qual.FRic
[1] 1
$FEve
com1 com2 com3 com4 com5 com6 com7 com8
NA NA NA NA NA 0.5000000 NA NA
com9 com10
0.3333333 0.6666667
$FDis
com1 com2 com3 com4 com5 com6 com7 com8
0.3061862 0.3628874 0.3628874 0.1786086 0.3827328 0.3158060 0.3238995 0.1612833
com9 com10
0.4341461 0.4213595
$RaoQ
com1 com2 com3 com4 com5 com6 com7
0.12500000 0.14814815 0.14814815 0.07291667 0.15625000 0.13925926 0.13223140
com8 com9 com10
0.06584362 0.19283747 0.18732782
$CWM
Trait
com1 C
com2 B
com3 A
com4 C
com5 C
com6 C
com7 A
com8 C
com9 A
com10 B
>
> # example with real data from New Zealand short-tussock grasslands
> # 'lingoes' correction used because 'sqrt' does not work in that case
> ex7 <- dbFD(tussock$trait, tussock$abun, corr = "lingoes")
Species x species distance matrix was not Euclidean. Lingoes correction was applied.
FRic: Dimensionality reduction was required. The last 40 PCoA axes (out of 51 in total) were removed.
FRic: Quality of the reduced-space representation (based on corrected distance matrix) = 0.5624752
>
>
> ## Not run:
> ##D # calc.FGR = T, 'ward'
> ##D ex7 <- dbFD(dummy$trait, dummy$abun, calc.FGR = T)
> ##D ex7
> ##D
> ##D # calc.FGR = T, 'kmeans'
> ##D ex8 <- dbFD(dummy$trait, dummy$abun, calc.FGR = T,
> ##D clust.type = "kmeans")
> ##D ex8
> ##D
> ##D # ward clustering to compute FGR
> ##D ex9 <- dbFD(tussock$trait, tussock$abun,
> ##D corr = "cailliez", calc.FGR = TRUE, clust.type = "ward")
> ##D # choose 'g' for number of groups
> ##D # 6 groups seems to make good ecological sense
> ##D ex9
> ##D
> ##D # however, calinksi criterion in 'kmeans' suggests
> ##D # that 6 groups may not be optimal
> ##D ex10 <- dbFD(tussock$trait, tussock$abun, corr = "cailliez",
> ##D calc.FGR = TRUE, clust.type = "kmeans", km.sup.gr = 10)
> ## End(Not run)
>
>
>
>
>
> dev.off()
null device
1
>