Synoptic tables summarize previously defined plant community groups, e.g., from cluster analysis, classification methods, or pre-defined strata, such as spatial distribution units. They help identify characteristic species patterns by calculating group-wise percentage/absolute frequencies, mean/median cover, fidelity indices or differential species character.

syntable calculates synoptic tables from vegetation data and a vector of group identities. The vegetation data can be provided as a species-sample matrix (default) or as long-format vegetation data (one row per species occurrence) (long = TRUE).

The unordered output table can be sorted with synsort function.

syntable(
  vegdata,
  groups = NULL,
  abund = "percentage",
  type = "percfreq",
  digits = NULL,
  long = FALSE,
  group_col = NULL,
  phi_method = "default",
  phi_standard = "none",
  phi_target_size = NULL,
  phi_alpha = NULL
)

Arguments

vegdata

A data-frame-like object. Either:

  • default: a species-sample matrix with species in columns and samples in rows. Species names must be column names, sample (row) names are optional.

  • with long = TRUE: a long-format table with at least three columns: sample ID, taxon name, and abundance/cover (these must be the first three columns).

Missing values (NA) are converted to 0. If non-numeric abundance values are present, the matrix will be transformed to presence/absence with all non-zero values defined as 1.

groups

Group identities for samples. For wide data (default): a vector/factor of length nrow(vegdata) (one group per sample/row). For long data: either a per-row vector (length nrow(vegdata)), a per-sample vector (named by sample IDs, or in the order of first appearance of samples), or NULL when group_col is used. Within each sample, exactly one group must be defined.

abund

Type of abundances: percentage cover ("percentage", default) or presence/absence ("pa" with values 0/1). Use cov2per to transform cover-abundance scales to percentage cover if needed.

type

Output type. One of c("percfreq","totalfreq","mean","median","diffspec","phi"). See Details.

digits

Integer indicating the number of decimal places to be displayed in result tables (default 0; for phi 3)

long

Logical. If TRUE, vegdata is treated as long-format data; otherwise as species-sample matrix (default)

group_col

(Long data only) Optional name of a column in vegdata that contains the group labels. When supplied, groups may be NULL.

phi_method

Fidelity measure when type = "phi": "default" (binary phi), "uvalue" (hypergeometric \(u\)), or "ochiai" (Ochiai coefficient).

phi_standard

Group-size equalization when type = "phi": "none" (no equalization), "target" (equalize the evaluated group to a chosen percentage of plots; other groups remain as observed outside the target), "all" (equalize the evaluated group to the chosen percentage and distribute the remaining percentage equally among the other groups so totals remain \(N\)).

phi_target_size

Numeric percentage in (0, 100) giving the conceptual size of the target group used by phi_standard. If NULL, defaults to equal sizes (i.e., \(100 / G\), where \(G\) is the number of groups).

phi_alpha

Optional significance level for Fisher’s exact test when type = "phi". If NULL (default), no test is performed. If a numeric value in (0, 1) is given, a Fisher exact p-value is computed for each species×group cell on the original 2×2 presence table; cells with \(p \ge\) phi_alpha are set to 0 in the output fidelity table.

Value

The function returns an (invisible) list of result components.

$syntable

unordered synoptic table for given species and groups

$samplesize

total number of samples per group

Additionally for differential species character calculation:

$onlydiff

Synoptic table only with differential species

$others

List of non-differential species

$differentials

Lists differential species for each group

Details

For synoptic table calculation, six types are available.

  • type = "percfreq" : percentage frequency of occurrence per group (default)

  • type = "totalfreq" : absolute frequency (number of plots with presence) per group

  • type = "mean" mean cover per group (abund = "percentage" only)

  • type = "median" median cover per group (abund = "percentage" only)

  • type = "phi" species fidelity. The default corresponds to the binary phi coefficient (= \(\phi = \frac{u}{\sqrt{N - 1}}\); Sokal & Rohlf 1995, Bruelheide 2000) with values between -1 and 1, expressing the avoidance or preference of a species for the target site group. Alternatively, the hypergeometric \(u\)-value (see Chytrý et al., 2002), or the Ochiai coefficient (see de Cáceres et al, 2008) can be selected via phi_method. Optional group-size equalization follows Tichý & Chytrý (2006) via phi_standard and phi_target_size. A significance level for an optional zero-out of non-significant cells based on Fisher's exact test can be provided via phi_alpha.

  • type = "diffspec" differential character of species according to Tsiripidis et al. 2009: p = positive, n = negative, pn = positive- negative, or none (-). Consider that differential character is always restricted to some and not necessarily all of the other units, thus considering percentage frequency is essential for correct interpretation of the diagnostic species character. Requires \(\ge 3\) groups and is available for wide data only.

For sorting the output synoptic table, use synsort function, providing several options.

References

Bruelheide, H. (2000): A new measure of fidelity and its application to defining species groups. Journal of Vegetation Science 11: 167-178. doi:10.2307/3236796

Chytrý, M., Tichý, L., Holt, J., Botta-Dukat, Z. (2002): Determination of diagnostic species with statistical fidelity measures. Journal of Vegetation Science 13: 79-90. doi:10.1111/j.1654-1103.2002.tb02025.x

de Cáceres, M., Font, X., & Oliva, F. (2008). Assessing species diagnostic value in large data sets: A comparison between phi‐coefficient and Ochiai index. Journal of Vegetation Science, 19(6), 779–788. doi:10.3170/2008-8-18446

Sokal, R.R. & Rohlf, F.J. (1995): Biometry. 3rd edition Freemann, New York.

Tichý, L., & Chytrý, M. (2006). Statistical determination of diagnostic species for site groups of unequal size. Journal of Vegetation Science, 17(6), 809–818. doi:10.1111/j.1654-1103.2006.tb02504.x

Tsiripidis, I., Bergmeier, E., Fotiadis, G. & Dimopoulos, P. (2009): A new algorithm for the determination of differential taxa. Journal of Vegetation Science 20: 233-240. doi:10.1111/j.1654-1103.2009.05273.x

See also

Author

Friedemann von Lampe, Jenny Schellenberg

Examples

## Synoptic table of Scheden vegetation data
library(cluster)
pam1 <- pam(schedenveg, 4)  # PAM clustering with 4 clusters output


## 1) Unordered synoptic percentage frequency table
percfreq <- syntable(schedenveg, pam1$clustering, abund = "percentage",
                         type = "percfreq")
percfreq                   # view results
#> $syntable
#>           1   2   3   4
#> AceCamp   0  10   0   0
#> AchMill   0  30  55  25
#> AgrEupa   0   0  36   0
#> AjuGene   0   0   9   0
#> AjuRept   0   0   0  25
#> AllVine   0  20   0  25
#> AloPrat  67  50   0   0
#> AntDioi   0   0   9   0
#> AntOdor  33  60   9  50
#> AntSylv   0  20   0   0
#> AntVuln   0   0  18   0
#> AraThal   0   0   0  25
#> AreSerp   0   0   9   0
#> ArrElat  67 100  55  75
#> AstGlyc   0   0   9   0
#> BelPere   0  20   0   0
#> BetPend   0   0   9   0
#> BriMedi   0  20  82   0
#> BroErec  33 100 100  75
#> BroHord  67  20   9  25
#> BroSter   0  10   0  25
#> CalSepi   0  10   0   0
#> CamGlom   0  10   0   0
#> CarPrat  33   0   0  25
#> CarCary   0  10  45   0
#> CarFlac   0  10  73   0
#> CarBetu   0  10  18   0
#> CenJace   0  10  36   0
#> CenScab   0   0  27   0
#> CenEryt   0   0   9   0
#> CerArve   0   0   0  25
#> CerGlom  33  30  18  50
#> CerHolo  33  80   9  75
#> CirAcau   0  10  55   0
#> CirArve  33   0   0   0
#> CirVulg  33   0   0  25
#> ConArve   0  40  18  25
#> CorSang   0  10  18   0
#> CorAvel   0  10   0   0
#> CraLaev   0  20  27   0
#> CraMono   0   0   9   0
#> CraSpec   0   0  27   0
#> CreBien   0  40  27  50
#> CynCris  33  30   9  25
#> DacGlom 100 100  64 100
#> DauCaro  67  20  36  25
#> EupCypa   0   0  27   0
#> EupSpec   0   0   9   0
#> FesOvin   0  10  36   0
#> FesPrat 100  60  27  75
#> FesRubr  67  70  27 100
#> FraVesc   0   0   0  25
#> FraViri   0  10  55   0
#> FraExce   0  10   0   0
#> GalAlbu 100  90  64 100
#> GalPumi   0   0   9   0
#> GalVeru   0   0  45   0
#> GenTinc   0  10  27   0
#> GerDiss   0  20   0   0
#> GerMoll   0  10   0   0
#> GeuUrba   0   0   0  25
#> GleHede  67  30  27   0
#> GymCono   0   0  18   0
#> HelNumm   0   0   9   0
#> HelPube  67  40  27  50
#> HerSpho   0  20  27   0
#> HieMuro   0   0  18   0
#> HipComo   0   0  55   0
#> HolLana 100  70  36  75
#> HypMacu   0   0   9   0
#> HypPerf   0   0  45  75
#> JunComm   0   0   9   0
#> KnaArve  33  70  73  50
#> KoePyra   0   0  18   0
#> LatPrat  33  40  18  50
#> LeoAutu   0   0   9   0
#> LeoHisp   0   0  27   0
#> LeuIrcu  33  40  73  50
#> LinCath   0   0  36  25
#> LisOvat   0   0  18   0
#> LolPere  67  80  27   0
#> LotCorn   0  30  55  50
#> LuzCamp   0  40  45  25
#> LuzMult   0   0   0  25
#> LysNumm   0   0   9   0
#> MedFalc   0   0   9   0
#> MedLupu  33  50  73  25
#> MyoArve  33  20   0  50
#> OnoVici   0   0   9   0
#> OnoRepe   0  10  27   0
#> OphInse   0   0   9   0
#> OrcMasc   0   0   9   0
#> PhlPrat  67  10   9   0
#> PilOffi   0  10  36   0
#> PimMajo   0  10   0  50
#> PimSaxi   0  50  55  50
#> PinSpec   0   0   9   0
#> PlaLaet   0   0   9   0
#> PlaLanc  67 100 100 100
#> PlaMajo   0  10   9   0
#> PlaMedi   0   0  55  25
#> PoaAngu   0  50  18  25
#> PoaPrat  33  90  64  75
#> PoaTriv 100  70  18  75
#> PolComo   0   0  45   0
#> PotAnse   0   0   9   0
#> PotRept   0  10   0   0
#> PotVern   0   0  36   0
#> PriVeri   0  60  73  75
#> PruGran   0   0   9   0
#> PruAviu   0  20  55   0
#> PruSpin   0   0  45   0
#> QueRobu   0  30  27   0
#> QueSpec   0   0  18   0
#> RanAcri  67  30  27  75
#> RanBulb  33  80 100  25
#> RanRepe  33  10   0   0
#> RanSpec   0  10   0   0
#> RhiMino  33  40  27  25
#> RosCani   0   0   9   0
#> RosSpec   0  30  18  25
#> RubFrut   0   0   0  25
#> RubIdae   0   0   9   0
#> RumAcet  33  90  36 100
#> RumObtu   0   0   9   0
#> SalPrat   0  10  27   0
#> SanMino   0  20  91  50
#> ScaColu   0   0  27   0
#> SedSexa   0   0   9   0
#> SenJaco   0  10  36   0
#> SilNuta   0  10  18   0
#> SilPusi   0   0   9   0
#> SteGram   0  10   0   0
#> TarEryt   0  10   0   0
#> TarRude  67  70  55  75
#> ThlPerf   0   0   9  25
#> ThyPule   0   0  27   0
#> TraPrat   0  40  27  25
#> TriCamp   0   0   9   0
#> TriDubi   0  50  36  50
#> TriPrat  67  70  64  75
#> TriRepe  67  50  27  50
#> TriFlav 100 100  82  75
#> UrtDioi   0   0   0  25
#> ValCari   0   0   0  25
#> ValLocu   0  20   9  25
#> VerArve  33  30  18  25
#> VerCham  67  40  36 100
#> VerHede  33   0   0   0
#> VerTeuc   0   0  27   0
#> VibOpul   0   0   9   0
#> VicAngu   0  40  45  50
#> VicCrac   0  20  18   0
#> VicSepi   0  20  18  50
#> VioHirt   0  20  55  50
#> 
#> $samplesize
#>  1  2  3  4 
#>  3 10 11  4 
#> 


## 2) Differential species analysis
differential <- syntable(schedenveg, pam1$clustering, abund = "percentage",
                             type = "diffspec")
#> 
  |                                                                            
  |======                                                                |   9%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |=============                                                         |  18%
  |                                                                            
  |================                                                      |  23%
  |                                                                            
  |===================                                                   |  27%
  |                                                                            
  |======================                                                |  32%
  |                                                                            
  |=========================                                             |  36%
  |                                                                            
  |=============================                                         |  41%
  |                                                                            
  |================================                                      |  45%
  |                                                                            
  |===================================                                   |  50%
  |                                                                            
  |======================================                                |  55%
  |                                                                            
  |=========================================                             |  59%
  |                                                                            
  |=============================================                         |  64%
  |                                                                            
  |================================================                      |  68%
  |                                                                            
  |===================================================                   |  73%
  |                                                                            
  |======================================================                |  77%
  |                                                                            
  |======================================================================| 100%
# show complete table with differential character of species
differential$syntable
#>         1  2 3 4
#> AceCamp -  - - -
#> AchMill n  p p p
#> AgrEupa n  n p n
#> AjuGene -  - - -
#> AjuRept n  n n p
#> AllVine n  p n p
#> AloPrat p  p n n
#> AntDioi -  - - -
#> AntOdor -  p n p
#> AntSylv n  p n n
#> AntVuln -  - - -
#> AraThal n  n n p
#> AreSerp -  - - -
#> ArrElat -  - - -
#> AstGlyc -  - - -
#> BelPere n  p n n
#> BetPend -  - - -
#> BriMedi n pn p n
#> BroErec n  p p -
#> BroHord p  n n -
#> BroSter n  - n p
#> CalSepi -  - - -
#> CamGlom -  - - -
#> CarPrat p  n n p
#> CarCary n  n p n
#> CarFlac n  n p n
#> CarBetu -  - - -
#> CenJace n  - p n
#> CenScab n  n p n
#> CenEryt -  - - -
#> CerArve n  n n p
#> CerGlom -  - - -
#> CerHolo -  p n p
#> CirAcau n  n p n
#> CirArve p  n n n
#> CirVulg p  n n p
#> ConArve n  p - p
#> CorSang -  - - -
#> CorAvel -  - - -
#> CraLaev n  p p n
#> CraMono -  - - -
#> CraSpec n  n p n
#> CreBien n  p p p
#> CynCris -  - - -
#> DacGlom -  - - -
#> DauCaro p  n - -
#> EupCypa n  n p n
#> EupSpec -  - - -
#> FesOvin n  - p n
#> FesPrat p  - n p
#> FesRubr -  - n p
#> FraVesc n  n n p
#> FraViri n  n p n
#> FraExce -  - - -
#> GalAlbu -  - - -
#> GalPumi -  - - -
#> GalVeru n  n p n
#> GenTinc n  - p n
#> GerDiss n  p n n
#> GerMoll -  - - -
#> GeuUrba n  n n p
#> GleHede p  p p n
#> GymCono -  - - -
#> HelNumm -  - - -
#> HelPube -  - - -
#> HerSpho n  p p n
#> HieMuro -  - - -
#> HipComo n  n p n
#> HolLana p  - n -
#> HypMacu -  - - -
#> HypPerf n  n p p
#> JunComm -  - - -
#> KnaArve -  - - -
#> KoePyra -  - - -
#> LatPrat -  - - -
#> LeoAutu -  - - -
#> LeoHisp n  n p n
#> LeuIrcu -  - - -
#> LinCath n  n p p
#> LisOvat -  - - -
#> LolPere p  p p n
#> LotCorn n  p p p
#> LuzCamp n  p p p
#> LuzMult n  n n p
#> LysNumm -  - - -
#> MedFalc -  - - -
#> MedLupu -  - p n
#> MyoArve p  p n p
#> OnoVici -  - - -
#> OnoRepe n  - p n
#> OphInse -  - - -
#> OrcMasc -  - - -
#> PhlPrat p  n n n
#> PilOffi n  - p n
#> PimMajo n  n n p
#> PimSaxi n  p p p
#> PinSpec -  - - -
#> PlaLaet -  - - -
#> PlaLanc -  - - -
#> PlaMajo -  - - -
#> PlaMedi n  n p p
#> PoaAngu n  p - p
#> PoaPrat n  p - -
#> PoaTriv p  p n p
#> PolComo n  n p n
#> PotAnse -  - - -
#> PotRept -  - - -
#> PotVern n  n p n
#> PriVeri n  p p p
#> PruGran -  - - -
#> PruAviu n  p p n
#> PruSpin n  n p n
#> QueRobu n  p p n
#> QueSpec -  - - -
#> RanAcri -  - n p
#> RanBulb n  p p n
#> RanRepe p  - n n
#> RanSpec -  - - -
#> RhiMino -  - - -
#> RosCani -  - - -
#> RosSpec n  p - p
#> RubFrut n  n n p
#> RubIdae -  - - -
#> RumAcet n  p n p
#> RumObtu -  - - -
#> SalPrat n  - p n
#> SanMino n pn p p
#> ScaColu n  n p n
#> SedSexa -  - - -
#> SenJaco n  - p n
#> SilNuta -  - - -
#> SilPusi -  - - -
#> SteGram -  - - -
#> TarEryt -  - - -
#> TarRude -  - - -
#> ThlPerf n  n - p
#> ThyPule n  n p n
#> TraPrat n  p p p
#> TriCamp -  - - -
#> TriDubi n  p p p
#> TriPrat -  - - -
#> TriRepe -  - - -
#> TriFlav -  - - -
#> UrtDioi n  n n p
#> ValCari n  n n p
#> ValLocu n  p - p
#> VerArve -  - - -
#> VerCham -  n n p
#> VerHede p  n n n
#> VerTeuc n  n p n
#> VibOpul -  - - -
#> VicAngu n  p p p
#> VicCrac n  p - n
#> VicSepi n  p - p
#> VioHirt n  p p p
# list differential species for second cluster
differential$differentials[2]
#> $`2`
#> $`2`$`positive diff`
#>  [1] "AchMill" "AllVine" "AloPrat" "AntOdor" "AntSylv" "BelPere" "BroErec"
#>  [8] "CerHolo" "ConArve" "CraLaev" "CreBien" "GerDiss" "GleHede" "HerSpho"
#> [15] "LolPere" "LotCorn" "LuzCamp" "MyoArve" "PimSaxi" "PoaAngu" "PoaPrat"
#> [22] "PoaTriv" "PriVeri" "PruAviu" "QueRobu" "RanBulb" "RosSpec" "RumAcet"
#> [29] "TraPrat" "TriDubi" "ValLocu" "VicAngu" "VicCrac" "VicSepi" "VioHirt"
#> 
#> $`2`$`negative diff`
#>  [1] "AgrEupa" "AjuRept" "AraThal" "BroHord" "CarPrat" "CarCary" "CarFlac"
#>  [8] "CenScab" "CerArve" "CirAcau" "CirArve" "CirVulg" "CraSpec" "DauCaro"
#> [15] "EupCypa" "FraVesc" "FraViri" "GalVeru" "GeuUrba" "HipComo" "HypPerf"
#> [22] "LeoHisp" "LinCath" "LuzMult" "PhlPrat" "PimMajo" "PlaMedi" "PolComo"
#> [29] "PotVern" "PruSpin" "RubFrut" "ScaColu" "ThlPerf" "ThyPule" "UrtDioi"
#> [36] "ValCari" "VerCham" "VerHede" "VerTeuc"
#> 
#> $`2`$`positive/negative diff`
#> [1] "BriMedi" "SanMino"
#> 
#> 


## 3) Synoptic table with phi fidelity
phitable <- syntable(schedenveg, pam1$clustering, abund = "percentage",
                         type = "phi")
phitable
#> $syntable
#>              1      2      3      4
#> AceCamp -0.067  0.258 -0.155 -0.079
#> AchMill -0.258 -0.089  0.316 -0.091
#> AgrEupa -0.141 -0.304  0.508 -0.167
#> AjuGene -0.067 -0.143  0.239 -0.079
#> AjuRept -0.067 -0.143 -0.155  0.471
#> AllVine -0.120  0.224 -0.279  0.189
#> AloPrat  0.333  0.430 -0.464 -0.236
#> AntDioi -0.067 -0.143  0.239 -0.079
#> AntOdor -0.017  0.378 -0.447  0.122
#> AntSylv -0.096  0.372 -0.223 -0.113
#> AntVuln -0.096 -0.207  0.345 -0.113
#> AraThal -0.067 -0.143 -0.155  0.471
#> AreSerp -0.067 -0.143  0.239 -0.079
#> ArrElat -0.067  0.430 -0.380  0.000
#> AstGlyc -0.067 -0.143  0.239 -0.079
#> BelPere -0.096  0.372 -0.223 -0.113
#> BetPend -0.067 -0.143  0.239 -0.079
#> BriMedi -0.279 -0.294  0.701 -0.328
#> BroErec -0.627  0.258  0.279 -0.189
#> BroHord  0.382 -0.026 -0.242  0.036
#> BroSter -0.096  0.083 -0.223  0.283
#> CalSepi -0.067  0.258 -0.155 -0.079
#> CamGlom -0.067  0.258 -0.155 -0.079
#> CarPrat  0.352 -0.207 -0.223  0.283
#> CarCary -0.181 -0.208  0.471 -0.213
#> CarFlac -0.238 -0.353  0.699 -0.281
#> CarBetu -0.120 -0.017  0.194 -0.141
#> CenJace -0.162 -0.153  0.389 -0.190
#> CenScab -0.120 -0.258  0.431 -0.141
#> CenEryt -0.067 -0.143  0.239 -0.079
#> CerArve -0.067 -0.143 -0.155  0.471
#> CerGlom  0.037  0.024 -0.185  0.194
#> CerHolo -0.091  0.502 -0.602  0.234
#> CirAcau -0.200 -0.258  0.549 -0.236
#> CirArve  0.556 -0.143 -0.155 -0.079
#> CirVulg  0.352 -0.207 -0.223  0.283
#> ConArve -0.200  0.258 -0.127  0.000
#> CorSang -0.120 -0.017  0.194 -0.141
#> CorAvel -0.067  0.258 -0.155 -0.079
#> CraLaev -0.162  0.042  0.198 -0.190
#> CraMono -0.067 -0.143  0.239 -0.079
#> CraSpec -0.120 -0.258  0.431 -0.141
#> CreBien -0.238  0.125 -0.084  0.156
#> CynCris  0.101  0.156 -0.242  0.036
#> DacGlom  0.141  0.304 -0.508  0.167
#> DauCaro  0.256 -0.194  0.073 -0.062
#> EupCypa -0.120 -0.258  0.431 -0.141
#> EupSpec -0.067 -0.143  0.239 -0.079
#> FesOvin -0.162 -0.153  0.389 -0.190
#> FesPrat  0.322  0.096 -0.424  0.175
#> FesRubr  0.067  0.194 -0.486  0.354
#> FraVesc -0.067 -0.143 -0.155  0.471
#> FraViri -0.200 -0.258  0.549 -0.236
#> FraExce -0.067  0.258 -0.155 -0.079
#> GalAlbu  0.162  0.153 -0.389  0.190
#> GalPumi -0.067 -0.143  0.239 -0.079
#> GalVeru -0.162 -0.348  0.580 -0.190
#> GenTinc -0.141 -0.091  0.299 -0.167
#> GerDiss -0.096  0.372 -0.223 -0.113
#> GerMoll -0.067  0.258 -0.155 -0.079
#> GeuUrba -0.067 -0.143 -0.155  0.471
#> GleHede  0.292  0.024 -0.023 -0.258
#> GymCono -0.096 -0.207  0.345 -0.113
#> HelNumm -0.067 -0.143  0.239 -0.079
#> HelPube  0.194  0.011 -0.198  0.090
#> HerSpho -0.162  0.042  0.198 -0.190
#> HieMuro -0.096 -0.207  0.345 -0.113
#> HipComo -0.181 -0.389  0.649 -0.213
#> HolLana  0.279  0.142 -0.401  0.119
#> HypMacu -0.067 -0.143  0.239 -0.079
#> HypPerf -0.219 -0.471  0.301  0.420
#> JunComm -0.067 -0.143  0.239 -0.079
#> KnaArve -0.224  0.089  0.142 -0.122
#> KoePyra -0.096 -0.207  0.345 -0.113
#> LatPrat  0.009  0.125 -0.240  0.156
#> LeoAutu -0.067 -0.143  0.239 -0.079
#> LeoHisp -0.120 -0.258  0.431 -0.141
#> LeuIrcu -0.141 -0.203  0.309 -0.029
#> LinCath -0.162 -0.348  0.389  0.076
#> LisOvat -0.096 -0.207  0.345 -0.113
#> LolPere  0.141  0.502 -0.309 -0.380
#> LotCorn -0.279 -0.142  0.251  0.090
#> LuzCamp -0.258  0.067  0.164 -0.091
#> LuzMult -0.067 -0.143 -0.155  0.471
#> LysNumm -0.067 -0.143  0.239 -0.079
#> MedFalc -0.067 -0.143  0.239 -0.079
#> MedLupu -0.141 -0.053  0.309 -0.234
#> MyoArve  0.140  0.042 -0.375  0.343
#> OnoVici -0.067 -0.143  0.239 -0.079
#> OnoRepe -0.141 -0.091  0.299 -0.167
#> OphInse -0.067 -0.143  0.239 -0.079
#> OrcMasc -0.067 -0.143  0.239 -0.079
#> PhlPrat  0.519 -0.091 -0.119 -0.167
#> PilOffi -0.162 -0.153  0.389 -0.190
#> PimMajo -0.120 -0.017 -0.279  0.519
#> PimSaxi -0.322  0.053  0.131  0.029
#> PinSpec -0.067 -0.143  0.239 -0.079
#> PlaLaet -0.067 -0.143  0.239 -0.079
#> PlaLanc -0.556  0.143  0.155  0.079
#> PlaMajo -0.096  0.083  0.061 -0.113
#> PlaMedi -0.200 -0.430  0.549  0.000
#> PoaAngu -0.219  0.354 -0.185 -0.032
#> PoaPrat -0.292  0.306 -0.139  0.032
#> PoaTriv  0.322  0.246 -0.571  0.175
#> PolComo -0.162 -0.348  0.580 -0.190
#> PotAnse -0.067 -0.143  0.239 -0.079
#> PotRept -0.067  0.258 -0.155 -0.079
#> PotVern -0.141 -0.304  0.508 -0.167
#> PriVeri -0.431 -0.011  0.198  0.119
#> PruGran -0.067 -0.143  0.239 -0.079
#> PruAviu -0.219 -0.141  0.462 -0.258
#> PruSpin -0.162 -0.348  0.580 -0.190
#> QueRobu -0.181  0.156  0.115 -0.213
#> QueSpec -0.096 -0.207  0.345 -0.113
#> RanAcri  0.194 -0.142 -0.198  0.299
#> RanBulb -0.333  0.086  0.464 -0.471
#> RanRepe  0.352  0.083 -0.223 -0.113
#> RanSpec -0.067  0.258 -0.155 -0.079
#> RhiMino  0.009  0.125 -0.084 -0.062
#> RosCani -0.067 -0.143  0.239 -0.079
#> RosSpec -0.181  0.156 -0.064  0.036
#> RubFrut -0.067 -0.143 -0.155  0.471
#> RubIdae -0.067 -0.143  0.239 -0.079
#> RumAcet -0.224  0.400 -0.469  0.304
#> RumObtu -0.067 -0.143  0.239 -0.079
#> SalPrat -0.141 -0.091  0.299 -0.167
#> SanMino -0.346 -0.447  0.658  0.000
#> ScaColu -0.120 -0.258  0.431 -0.141
#> SedSexa -0.067 -0.143  0.239 -0.079
#> SenJaco -0.162 -0.153  0.389 -0.190
#> SilNuta -0.120 -0.017  0.194 -0.141
#> SilPusi -0.067 -0.143  0.239 -0.079
#> SteGram -0.067  0.258 -0.155 -0.079
#> TarEryt -0.067  0.258 -0.155 -0.079
#> TarRude  0.017  0.089 -0.164  0.091
#> ThlPerf -0.096 -0.207  0.061  0.283
#> ThyPule -0.120 -0.258  0.431 -0.141
#> TraPrat -0.219  0.189 -0.023 -0.032
#> TriCamp -0.067 -0.143  0.239 -0.079
#> TriDubi -0.279  0.164 -0.048  0.090
#> TriPrat -0.009  0.034 -0.073  0.062
#> TriRepe  0.167  0.108 -0.253  0.059
#> TriFlav  0.120  0.258 -0.194 -0.189
#> UrtDioi -0.067 -0.143 -0.155  0.471
#> ValCari -0.067 -0.143 -0.155  0.471
#> ValLocu -0.141  0.122 -0.119  0.125
#> VerArve  0.067  0.086 -0.127  0.000
#> VerCham  0.115 -0.149 -0.219  0.408
#> VerHede  0.556 -0.143 -0.155 -0.079
#> VerTeuc -0.120 -0.258  0.431 -0.141
#> VibOpul -0.067 -0.143  0.239 -0.079
#> VicAngu -0.279  0.011  0.102  0.090
#> VicCrac -0.141  0.122  0.090 -0.167
#> VicSepi -0.181 -0.026 -0.064  0.284
#> VioHirt -0.258 -0.244  0.316  0.122
#> 
#> $samplesize
#>  1  2  3  4 
#>  3 10 11  4 
#> 


## 3b) Hypergeometric u-value and standardisation of group sizes
phiu <- syntable(schedenveg, pam1$clustering, abund = "percentage",
                 type = "phi", phi_method = "uvalue", phi_standard = "all")
phiu
#> $syntable
#>              1      2      3      4
#> AceCamp -0.480  1.441 -0.480 -0.480
#> AchMill -1.842  0.176  1.827 -0.161
#> AgrEupa -0.949 -0.949  2.846 -0.949
#> AjuGene -0.457 -0.457  1.372 -0.457
#> AjuRept -0.775 -0.775 -0.775  2.324
#> AllVine -1.068  0.831 -1.068  1.305
#> AloPrat  2.475  1.375 -1.925 -1.925
#> AntDioi -0.457 -0.457  1.372 -0.457
#> AntOdor -0.295  1.352 -1.792  0.735
#> AntSylv -0.688  2.065 -0.688 -0.688
#> AntVuln -0.655 -0.655  1.964 -0.655
#> AraThal -0.775 -0.775 -0.775  2.324
#> AreSerp -0.457 -0.457  1.372 -0.457
#> ArrElat -0.506  1.776 -1.335  0.065
#> AstGlyc -0.457 -0.457  1.372 -0.457
#> BelPere -0.688  2.065 -0.688 -0.688
#> BetPend -0.457 -0.457  1.372 -0.457
#> BriMedi -1.753 -0.376  3.882 -1.753
#> BroErec -3.123  1.636  1.636 -0.149
#> BroHord  2.384 -0.666 -1.379 -0.339
#> BroSter -0.929  0.133 -0.929  1.725
#> CalSepi -0.480  1.441 -0.480 -0.480
#> CamGlom -0.480  1.441 -0.480 -0.480
#> CarPrat  1.594 -1.240 -1.240  0.885
#> CarCary -1.204 -0.335  2.743 -1.204
#> CarFlac -1.532 -0.791  3.855 -1.532
#> CarBetu -0.826  0.346  1.305 -0.826
#> CenJace -1.086 -0.149  2.322 -1.086
#> CenScab -0.812 -0.812  2.435 -0.812
#> CenEryt -0.457 -0.457  1.372 -0.457
#> CerArve -0.775 -0.775 -0.775  2.324
#> CerGlom  0.029 -0.184 -0.939  1.093
#> CerHolo -0.961  1.839 -2.416  1.539
#> CirAcau -1.316 -0.500  3.132 -1.316
#> CirArve  2.714 -0.905 -0.905 -0.905
#> CirVulg  1.594 -1.240 -1.240  0.885
#> ConArve -1.537  1.420 -0.193  0.311
#> CorSang -0.826  0.346  1.305 -0.826
#> CorAvel -0.480  1.441 -0.480 -0.480
#> CraLaev -1.098  0.760  1.436 -1.098
#> CraMono -0.457 -0.457  1.372 -0.457
#> CraSpec -0.812 -0.812  2.435 -0.812
#> CreBien -1.932  0.704 -0.135  1.363
#> CynCris  0.627  0.394 -1.067  0.045
#> DacGlom  0.949  0.949 -2.846  0.949
#> DauCaro  1.843 -1.057 -0.040 -0.746
#> EupCypa -0.812 -0.812  2.435 -0.812
#> EupSpec -0.457 -0.457  1.372 -0.457
#> FesOvin -1.086 -0.149  2.322 -1.086
#> FesPrat  2.174 -0.352 -2.418  0.596
#> FesRubr  0.043  0.254 -2.451  2.154
#> FraVesc -0.775 -0.775 -0.775  2.324
#> FraViri -1.316 -0.500  3.132 -1.316
#> FraExce -0.480  1.441 -0.480 -0.480
#> GalAlbu  1.086  0.149 -2.322  1.086
#> GalPumi -0.457 -0.457  1.372 -0.457
#> GalVeru -1.074 -1.074  3.223 -1.074
#> GenTinc -0.962  0.070  1.853 -0.962
#> GerDiss -0.688  2.065 -0.688 -0.688
#> GerMoll -0.480  1.441 -0.480 -0.480
#> GeuUrba -0.775 -0.775 -0.775  2.324
#> GleHede  2.315 -0.064 -0.241 -2.010
#> GymCono -0.655 -0.655  1.964 -0.655
#> HelNumm -0.457 -0.457  1.372 -0.457
#> HelPube  1.245 -0.360 -1.126  0.242
#> HerSpho -1.098  0.760  1.436 -1.098
#> HieMuro -0.655 -0.655  1.964 -0.655
#> HipComo -1.192 -1.192  3.576 -1.192
#> HolLana  1.948 -0.022 -2.232  0.306
#> HypMacu -0.457 -0.457  1.372 -0.457
#> HypPerf -1.969 -1.969  1.003  2.935
#> JunComm -0.457 -0.457  1.372 -0.457
#> KnaArve -1.403  0.816  0.981 -0.394
#> KoePyra -0.655 -0.655  1.964 -0.655
#> LatPrat -0.128  0.290 -1.079  0.917
#> LeoAutu -0.457 -0.457  1.372 -0.457
#> LeoHisp -0.812 -0.812  2.435 -0.812
#> LeuIrcu -0.941 -0.541  1.423  0.059
#> LinCath -1.277 -1.277  1.750  0.804
#> LisOvat -0.655 -0.655  1.964 -0.655
#> LolPere  1.403  2.210 -0.981 -2.632
#> LotCorn -2.136 -0.231  1.328  1.039
#> LuzCamp -1.853  0.831  1.197 -0.175
#> LuzMult -0.775 -0.775 -0.775  2.324
#> LysNumm -0.457 -0.457  1.372 -0.457
#> MedFalc -0.457 -0.457  1.372 -0.457
#> MedLupu -0.719  0.285  1.655 -1.221
#> MyoArve  0.514 -0.400 -1.771  1.656
#> OnoVici -0.457 -0.457  1.372 -0.457
#> OnoRepe -0.962  0.070  1.853 -0.962
#> OphInse -0.457 -0.457  1.372 -0.457
#> OrcMasc -0.457 -0.457  1.372 -0.457
#> PhlPrat  3.306 -0.836 -0.903 -1.567
#> PilOffi -1.086 -0.149  2.322 -1.086
#> PimMajo -1.260 -0.420 -1.260  2.941
#> PimSaxi -2.380  0.700  0.980  0.700
#> PinSpec -0.457 -0.457  1.372 -0.457
#> PlaLaet -0.457 -0.457  1.372 -0.457
#> PlaLanc -2.714  0.905  0.905  0.905
#> PlaMajo -0.672  0.736  0.608 -0.672
#> PlaMedi -1.495 -1.495  2.605  0.384
#> PoaAngu -1.653  1.895 -0.363  0.121
#> PoaPrat -2.029  1.547 -0.117  0.600
#> PoaTriv  2.163  0.266 -3.011  0.582
#> PolComo -1.074 -1.074  3.223 -1.074
#> PotAnse -0.457 -0.457  1.372 -0.457
#> PotRept -0.480  1.441 -0.480 -0.480
#> PotVern -0.949 -0.949  2.846 -0.949
#> PriVeri -3.118  0.484  1.249  1.385
#> PruGran -0.457 -0.457  1.372 -0.457
#> PruAviu -1.436  0.105  2.766 -1.436
#> PruSpin -1.074 -1.074  3.223 -1.074
#> QueRobu -1.226  1.343  1.110 -1.226
#> QueSpec -0.655 -0.655  1.964 -0.655
#> RanAcri  1.016 -1.184 -1.348  1.516
#> RanBulb -1.605  1.248  2.471 -2.114
#> RanRepe  2.172 -0.080 -1.046 -1.046
#> RanSpec -0.480  1.441 -0.480 -0.480
#> RhiMino  0.125  0.556 -0.267 -0.414
#> RosCani -0.457 -0.457  1.372 -0.457
#> RosSpec -1.420  0.908 -0.009  0.520
#> RubFrut -0.775 -0.775 -0.775  2.324
#> RubIdae -0.457 -0.457  1.372 -0.457
#> RumAcet -1.986  1.576 -1.795  2.205
#> RumObtu -0.457 -0.457  1.372 -0.457
#> SalPrat -0.962  0.070  1.853 -0.962
#> SanMino -2.461 -1.238  3.101  0.598
#> ScaColu -0.812 -0.812  2.435 -0.812
#> SedSexa -0.457 -0.457  1.372 -0.457
#> SenJaco -1.086 -0.149  2.322 -1.086
#> SilNuta -0.826  0.346  1.305 -0.826
#> SilPusi -0.457 -0.457  1.372 -0.457
#> SteGram -0.480  1.441 -0.480 -0.480
#> TarEryt -0.480  1.441 -0.480 -0.480
#> TarRude  0.007  0.219 -0.764  0.537
#> ThlPerf -0.916 -0.916  0.061  1.770
#> ThyPule -0.812 -0.812  2.435 -0.812
#> TraPrat -1.643  1.206  0.299  0.138
#> TriCamp -0.457 -0.457  1.372 -0.457
#> TriDubi -2.158  1.007  0.144  1.007
#> TriPrat -0.140  0.076 -0.336  0.400
#> TriRepe  1.091  0.091 -1.273  0.091
#> TriFlav  1.044  1.044 -0.714 -1.373
#> UrtDioi -0.775 -0.775 -0.775  2.324
#> ValCari -0.775 -0.775 -0.775  2.324
#> ValLocu -1.186  0.568 -0.389  1.007
#> VerArve  0.455  0.229 -0.573 -0.111
#> VerCham  0.363 -1.275 -1.499  2.411
#> VerHede  2.714 -0.905 -0.905 -0.905
#> VerTeuc -0.812 -0.812  2.435 -0.812
#> VibOpul -0.457 -0.457  1.372 -0.457
#> VicAngu -2.147  0.389  0.735  1.023
#> VicCrac -0.975  1.067  0.882 -0.975
#> VicSepi -1.595 -0.148 -0.280  2.023
#> VioHirt -2.017 -0.721  1.517  1.222
#> 
#> $samplesize
#>  1  2  3  4 
#>  3 10 11  4 
#> 


## 4) Synoptic percentage frequency table based on historical classification from 1997
percfreq <- syntable(schedenveg, schedenenv$comm, abund = "percentage",
                         type = "percfreq")
percfreq
#> $syntable
#>           A  GK
#> AceCamp   6   0
#> AchMill  28  50
#> AgrEupa   6  30
#> AjuGene   0  10
#> AjuRept   6   0
#> AllVine  17   0
#> AloPrat  39   0
#> AntDioi   0  10
#> AntOdor  50  10
#> AntSylv  11   0
#> AntVuln   0  20
#> AraThal   6   0
#> AreSerp   0  10
#> ArrElat  83  60
#> AstGlyc   0  10
#> BelPere  11   0
#> BetPend   0  10
#> BriMedi  17  80
#> BroErec  83 100
#> BroHord  28  10
#> BroSter  11   0
#> CalSepi   6   0
#> CamGlom   0  10
#> CarPrat  11   0
#> CarCary   0  60
#> CarFlac   6  80
#> CarBetu   6  20
#> CenJace   6  40
#> CenScab   0  30
#> CenEryt   0  10
#> CerArve   6   0
#> CerGlom  33  20
#> CerHolo  61  20
#> CirAcau   0  70
#> CirArve   6   0
#> CirVulg  11   0
#> ConArve  28  20
#> CorSang   0  30
#> CorAvel   6   0
#> CraLaev   6  40
#> CraMono   0  10
#> CraSpec   0  30
#> CreBien  44  10
#> CynCris  28  10
#> DacGlom 100  60
#> DauCaro  28  40
#> EupCypa   0  30
#> EupSpec   0  10
#> FesOvin   0  50
#> FesPrat  67  30
#> FesRubr  67  40
#> FraVesc   6   0
#> FraViri   6  60
#> FraExce   6   0
#> GalAlbu  89  70
#> GalPumi   0  10
#> GalVeru  11  30
#> GenTinc   0  40
#> GerDiss  11   0
#> GerMoll   6   0
#> GeuUrba   6   0
#> GleHede  33  20
#> GymCono   0  20
#> HelNumm   0  10
#> HelPube  50  20
#> HerSpho  17  20
#> HieMuro   0  20
#> HipComo   0  60
#> HolLana  72  40
#> HypMacu   0  10
#> HypPerf  22  40
#> JunComm   0  10
#> KnaArve  56  80
#> KoePyra   0  20
#> LatPrat  39  20
#> LeoAutu   6   0
#> LeoHisp   0  30
#> LeuIrcu  39  80
#> LinCath  11  30
#> LisOvat   0  20
#> LolPere  61  20
#> LotCorn  22  70
#> LuzCamp  28  50
#> LuzMult   6   0
#> LysNumm   0  10
#> MedFalc   0  10
#> MedLupu  33  90
#> MyoArve  28   0
#> OnoVici   0  10
#> OnoRepe   0  40
#> OphInse   0  10
#> OrcMasc   0  10
#> PhlPrat  22   0
#> PilOffi   0  50
#> PimMajo  17   0
#> PimSaxi  33  70
#> PinSpec   0  10
#> PlaLaet   6   0
#> PlaLanc  94 100
#> PlaMajo  11   0
#> PlaMedi  11  50
#> PoaAngu  28  30
#> PoaPrat  72  70
#> PoaTriv  83   0
#> PolComo   0  50
#> PotAnse   0  10
#> PotRept   6   0
#> PotVern   0  40
#> PriVeri  50  80
#> PruGran   0  10
#> PruAviu   6  70
#> PruSpin   0  50
#> QueRobu  17  30
#> QueSpec   0  20
#> RanAcri  56  10
#> RanBulb  61 100
#> RanRepe  11   0
#> RanSpec   6   0
#> RhiMino  28  40
#> RosCani   0  10
#> RosSpec  17  30
#> RubFrut   6   0
#> RubIdae   0  10
#> RumAcet  78  40
#> RumObtu   0  10
#> SalPrat   0  40
#> SanMino  28  90
#> ScaColu   0  30
#> SedSexa   0  10
#> SenJaco   0  50
#> SilNuta   0  30
#> SilPusi   6   0
#> SteGram   6   0
#> TarEryt   6   0
#> TarRude  72  50
#> ThlPerf   6  10
#> ThyPule   0  30
#> TraPrat  39  10
#> TriCamp   0  10
#> TriDubi  44  30
#> TriPrat  78  50
#> TriRepe  67   0
#> TriFlav  94  80
#> UrtDioi   6   0
#> ValCari   6   0
#> ValLocu  17  10
#> VerArve  28  20
#> VerCham  61  30
#> VerHede   6   0
#> VerTeuc   0  30
#> VibOpul   0  10
#> VicAngu  28  60
#> VicCrac  11  20
#> VicSepi  28  10
#> VioHirt  22  60
#> 
#> $samplesize
#>  A GK 
#> 18 10 
#>