| Type: | Package |
| Title: | Biological Condition Gradient, Calculator |
| Version: | 2.3.1 |
| Maintainer: | Erik W. Leppo <Erik.Leppo@tetratech.com> |
| Description: | Functions to calculate Biological Condition Gradient (BCG) using input files with one row per sample with metric values and site classes as columns. A second file with the BCG Rules (example included) to define the memberships is also needed. The three main functions convert metric scores to metric memberships following fuzzy set BCG Rules (BCG.Level.Assignment), combine metric memberships to level memberships according to BCG Rules (BCG.Level.Membership), and then assign a BCG primary and secondary level based on level memberships (BCG.Level.Assignment). Originally developed as a package for use with BCG for Puget Lowland/Willamette Valley but has been further enhanced for use with multiple communities (benthic macroinvertebrates, fish, periphyton, or coral) and different rule sets. Oregon and Washington reference - "Stamp, J. and J. Gerritsen. 2018. Calibration of the Biological Condition Gradient (BCG) for Macroinvertebrate Assemblages in Puget Lowland/Willamette Valley Freshwater Wadeable Streams. Prepared by Tetra Tech for the US EPA Office of Water, Office of Science and Technology and US EPA Region 10." BCG process documentation - "USEPA. 2016. A Practitioner’s Guide to the Biological Condition Gradient - A Framework to Describe Incremental Change in Aquatic Ecosystems. EPA 842-R-16-001. Office of Science and Technology, Washington, DC 20460." |
| License: | MIT + file LICENSE |
| Depends: | R (≥ 3.5.0) |
| Imports: | dplyr, reshape2 |
| Suggests: | BioMonTools, readxl, knitr, rmarkdown, ggplot2, shiny, DT, httr, testthat (≥ 3.0.0), plyr, tidyr, tibble, rioja, nhdplusTools, ComplexUpset |
| Encoding: | UTF-8 |
| LazyData: | true |
| URL: | https://github.com/leppott/BCGcalc |
| BugReports: | https://github.com/leppott/BCGcalc/issues |
| VignetteBuilder: | knitr |
| Config/testthat/edition: | 3 |
| Config/roxygen2/version: | 8.0.0 |
| NeedsCompilation: | no |
| Packaged: | 2026-07-31 15:18:06 UTC; Erik.Leppo |
| Author: | Erik W. Leppo [aut, cre], Jen Stamp [ctb], Matt Hedin [ctb], Ben Block [ctb] |
| Repository: | CRAN |
| Date/Publication: | 2026-08-08 10:30:02 UTC |
BCGcalc: Metric calculation and other tasks related to BCG
Description
Enables users to employ various tools and calculations related to BCG.
BCGcal functions
#' qc.checks #' ...
Author(s)
Maintainer: Erik W. Leppo Erik.Leppo@tetratech.com
Authors:
Erik W. Leppo Erik.Leppo@tetratech.com
Other contributors:
Jen Stamp Jen.Stamp@tetratech.com [contributor]
Matt Hedin Matt.Hedin@tetratech.com [contributor]
Ben Block Ben.Block@tetratech.com [contributor]
See Also
Useful links:
BCG Continuous Value to Text Level
Description
Convert Biological Condition Gradient (BCG) continuous value to level text.
Usage
BCG.ContLevelText(ContValue)
Arguments
ContValue |
Vector of continuous BCG levels (0 to 6). |
Details
Internal function to get narrative BCG level based on the continuous level.
'status' is the BCG Level as a number (x/y tie is x.5, the rest are integers).
'status_pm' is the BCG Level with +/- descriptors.
Value
Returns a dataframe of BCG levels ('status' and 'status_pm') along with input values ('value').
Examples
# construct a dummy dataset
L1 <- c(rep(0, 12))
L2 <- c(0.4, 0, 0.4, rep(0,7), 0, 0)
L3 <- c(0.6, 0, 0.6, 0, 0.42, 0, 1, 1, 0.22, 0.33, 0.5, 0)
L4 <- c(0, 0.9, 0, 0, 0.58, 0.05, 0, 0, 0.78, 0.67, 0.5, 0)
L5 <- c(0, 0.1, 0, 1, 0, 0.95, rep(0,4), 0, 1)
L6 <- c(rep(0, length(L1)))
SAMPLEID <- LETTERS[1:length(L1)]
df_lev_memb <- data.frame(SAMPLEID = SAMPLEID,
INDEX_NAME = "test",
INDEX_CLASS = "x",
L1 = L1,
L2 = L2,
L3 = L3,
L4 = L4,
L5 = L5,
L6 = L6)
# Calculate BCG Level Assignments
df_Levels <- BCG.Level.Assignment(df_lev_memb)
# Run Function
BCG_Status <- BCG.ContLevelText(df_Levels[, "Continuous_BCG_Level"])
BCG Level Assignment
Description
Biological Condition Gradient level assignment (1st and 2nd) given Level memberships.
Usage
BCG.Level.Assignment(
df.level.membership,
col_SampleID = "SAMPLEID",
col_Index_Name = "INDEX_NAME",
col_Index_Class = "INDEX_CLASS",
col_L1 = "L1",
col_L2 = "L2",
col_L3 = "L3",
col_L4 = "L4",
col_L5 = "L5",
col_L6 = "L6"
)
Arguments
df.level.membership |
Wide data frame with level memberships (0-1). |
col_SampleID |
Column name for sample id. Default = "SAMPLEID" |
col_Index_Name |
Column name for index name. Default = "INDEX_NAME" |
col_Index_Class |
Column name for index class. Default = "INDEX_CLASS" |
col_L1 |
Column name for memberships, Level 1. Default = "L1" |
col_L2 |
Column name for memberships, Level 2. Default = "L2" |
col_L3 |
Column name for memberships, Level 3. Default = "L3" |
col_L4 |
Column name for memberships, Level 4. Default = "L4" |
col_L5 |
Column name for memberships, Level 5. Default = "L5" |
col_L6 |
Column name for memberships, Level 6. Default = "L6" |
Details
Input is L1 to L6 with membership values of 0 to 1. Result is 1st Level (Primary_BCG_Level) and 2nd Level (Secondary_BCG_Level). Also give close (Membership_Close) and a continuous proportional Level assignment ("Continuous_BCG_Level").
Value
Returns a data frame of results in the wide format.
Examples
# Example 1
# construct a dummy dataset
L1 <- c(rep(0, 12))
L2 <- c(0.4, 0, 0.4, rep(0,7), 0, 0)
L3 <- c(0.6, 0, 0.6, 0, 0.42, 0, 1, 1, 0.22, 0.33, 0.5, 0)
L4 <- c(0, 0.9, 0, 0, 0.58, 0.05, 0, 0, 0.78, 0.67, 0.5, 0)
L5 <- c(0, 0.1, 0, 1, 0, 0.95, rep(0,4), 0, 1)
L6 <- c(rep(0, length(L1)))
SAMPLEID <- LETTERS[1:length(L1)]
df_lev_memb <- data.frame(SAMPLEID = SAMPLEID
, INDEX_NAME = "TEST_NAME"
, INDEX_CLASS = "TEST_CLASS"
, L1 = L1
, L2 = L2
, L3 = L3
, L4 = L4
, L5 = L5
, L6 = L6)
# Run Function
df_Levels <- BCG.Level.Assignment(df_lev_memb)
# Show Results
#View(df_Levels)
# Save Results
write.table(df_Levels
, file.path(tempdir(), "Levels.tsv")
, row.names = FALSE
, col.names = TRUE
, sep = "\t")
#~~~~~~~~~~~~~~~~~~~~~~~
# Example 2
# library(readxl)
# library(reshape2)
# library(BioMonTools)
# Calculate Metrics
df_samps_bugs <- readxl::read_excel(system.file(
"extdata/Data_BCG_PugLowWilVal.xlsx"
, package="BCGcalc")
, guess_max = 10^6)
# Run Function
myDF <- df_samps_bugs[1:250, ]
myCols <- c("Area_mi2",
"SurfaceArea",
"Density_m2",
"Density_ft2")
#' # populate missing columns prior to metric calculation
col_missing <- c("INFRAORDER",
"HABITAT",
"ELEVATION_ATTR",
"GRADIENT_ATTR",
"WSAREA_ATTR",
"HABSTRUCT",
"UFC",
"SAMP_AREA_M2")
myDF[, col_missing] <- NA
df_met_val_bugs <- BioMonTools::metric.values(myDF
, "bugs"
, fun.cols2keep = myCols)
# Import Rules
df_rules <- readxl::read_excel(system.file("extdata/Rules.xlsx"
, package="BCGcalc")
, sheet="Rules")
# Calculate Metric Memberships
df_met_memb <- BCG.Metric.Membership(df_met_val_bugs, df_rules)
# Calculate Level Memberships
df_lev_memb <- BCG.Level.Membership(df_met_memb, df_rules)
# Run Function
df_Levels <- BCG.Level.Assignment(df_lev_memb)
# QC Checks (flags)
#
# Import Checks
df_checks <- readxl::read_excel(system.file("extdata/MetricFlags.xlsx"
, package="BCGcalc")
, sheet="Flags")
# Run Function
df_flags <- BioMonTools::qc.checks(df_met_val_bugs, df_checks)
# Change terminology; PASS/FAIL to NA/flag
df_flags[, "FLAG"][df_flags[, "FLAG"] == "FAIL"] <- "flag"
df_flags[, "FLAG"][df_flags[, "FLAG"] == "PASS"] <- NA
# long to wide format
df_flags_wide <- reshape2::dcast(df_flags
, SAMPLEID ~ CHECKNAME
, value.var="FLAG")
# Calc number of "flag"s by row.
df_flags_wide$NumFlags <- rowSums(df_flags_wide == "flag", na.rm = TRUE)
# Rearrange columns
NumCols <- ncol(df_flags_wide)
df_flags_wide <- df_flags_wide[, c(1, NumCols, 2:(NumCols - 1))]
# Merge Levels and Flags
df_lev_flags <- merge(df_Levels
, df_flags_wide
, by.x = "SampleID"
, by.y = "SAMPLEID"
, all.x = TRUE)
# Summarize Results
table(df_flags[, "CHECKNAME"], df_flags[, "FLAG"], useNA = "ifany")
table(df_lev_flags$BCG_Status)
# Show Results
# View(df_lev_flags)
# Save Results
write.csv(df_lev_flags, file.path(tempdir(), "Level_Flags.csv"))
# # Summary Report
# strFile.RMD <- system.file(paste0("rmd/Results_Summary.Rmd")
# , package = "BCGcalc")
# strFile.RMD.format <- "html_document"
# strFile.out <- "_bcgcalc_RESULTS.html"
# dir.export <- tempdir()
# rmarkdown::render(strFile.RMD
# , output_format = strFile.RMD.format
# , output_file = strFile.out
# , output_dir = dir.export
# , quiet = TRUE)
BCG Level Membership
Description
Biological Condition Gradient Level assignment given metric memberships.
Usage
BCG.Level.Membership(
df.metric.membership,
df.rules,
col_SAMPLEID = "SAMPLEID",
col_INDEX_NAME = "INDEX_NAME",
col_INDEX_CLASS = "INDEX_CLASS",
col_LEVEL = "LEVEL",
col_METRIC_NAME = "METRIC_NAME",
col_RULE_TYPE = "RULE_TYPE",
col_EXC_RULE = "EXC_RULE",
col_MEMBERSHIP = "MEMBERSHIP",
...
)
Arguments
df.metric.membership |
Data frame of metric memberships (long format, the same as the output of BCG.Metric.Membership). |
df.rules |
Data frame of BCG model rules. |
col_SAMPLEID |
column name for sample id. Default = SAMPLEID |
col_INDEX_NAME |
column name for index name. Default = INDEX_NAME |
col_INDEX_CLASS |
column name for site type.Default = INDEX_CLASS |
col_LEVEL |
column name for level. Default = LEVEL |
col_METRIC_NAME |
column name for metric name. Default = METRIC_NAME |
col_RULE_TYPE |
column name for rule type (e.g., Rule0, Rule1, or Rule2). Default = RULE_TYPE |
col_EXC_RULE |
column name for exception rules. Default = EXC_RULE |
col_MEMBERSHIP |
column name for metric membership. Default = MEMBERSHIP |
... |
Arguments passed to |
Details
Input is metric memberships and a rules tables.
Output is a data frame with the membership for each row to each Level (1:6).
Minimum of:
1- sum of previous levels
Rule0 memberships
max of Rule1 (Alternate1) rules (and min of Rule2 (Alternate2) rules)
That is, perform calculations in this order:
Min of Rule2 (Alternate2) metric memberships
Max of Rule1 (Alternate1) rules and the above result.
Min of: Rule0, the above results, and 1 - the sum of previous levels.
Some exceptions exist for particular models.
| Index_Name | INDEX_CLASS |
| CT_BCG_2015 | fish02 |
| CT_BCG_2015 | fish03 |
| BCG_NMSandyRivers | bugs |
These exceptions are mostly hard coded into the function but gather some information with the parameter col_EXC_RULE from the rules table. A future update may fully automate this process.
2021 saw the introduction of Median Exception rule. For the Pacific Northwest some metrics were grouped and the 2nd of 3 values is used and the other 2 values tossed when determining level membership. This equates to using the median of the 3 values. This is handled by including "MEDIAN" in the Exc_Rule column in Rules.xlsx. Superceded by "SMALL2".
2024 added SMALL2 and SMALL3 Exception rules. For New Mexico BCG some metrics are grouped so use the 2nd or 3rd smallest value instead of the minimum. As above, this is handled by including "SMALL2" or "SMALL3" in the Exc_Rule column in Rules.xlsx.
Some Great Plains rules use multiple groupings of SMALL2. These are coded as "SMALL2A" and "SMALL2B". If additional groupings are needed the code needs to be tweaked.
Deprecated col_SITE_TYPE for col_INDEX_CLASS in v2.0.0.9001.
Value
Returns a data frame of results in the wide format.
Examples
# library(readxl)
# library(BioMonTools)
# Calculate Metrics
df_samps_bugs <- readxl::read_excel(
system.file("extdata/Data_BCG_PugLowWilVal.xlsx"
, package="BCGcalc")
, guess_max = 10^6)
myDF <- df_samps_bugs[1:500, ]
myCols <- c("Area_mi2",
"SurfaceArea",
"Density_m2",
"Density_ft2")
# populate missing columns prior to metric calculation
col_missing <- c("INFRAORDER",
"HABITAT",
"ELEVATION_ATTR",
"GRADIENT_ATTR",
"WSAREA_ATTR",
"HABSTRUCT",
"UFC",
"SAMP_AREA_M2")
myDF[, col_missing] <- NA
df_met_val_bugs <- BioMonTools::metric.values(myDF
, "bugs"
, fun.cols2keep = myCols)
# Import Rules
df_rules <- readxl::read_excel(system.file("extdata/Rules.xlsx"
, package = "BCGcalc")
, sheet="Rules")
# Calculate Metric Memberships
df_met_memb <- BCG.Metric.Membership(df_met_val_bugs, df_rules)
# Calculate Level Memberships
df_lev_memb <- BCG.Level.Membership(df_met_memb, df_rules)
# Show results
#View(df_lev_memb)
# Save Results
write.table(df_lev_memb
, file.path(tempdir(), "Level_Membership.tsv")
, row.names = FALSE
, col.names = TRUE
, sep = "\t")
BCG Metric Membership
Description
Biological Condition Gradient fuzzy membership for metrics.
Usage
BCG.Metric.Membership(
df.metrics,
df.rules,
input.shape = "wide",
col_SAMPLEID = "SAMPLEID",
col_INDEX_NAME = "INDEX_NAME",
col_INDEX_CLASS = "INDEX_CLASS",
col_LEVEL = "LEVEL",
col_METRIC_NAME = "METRIC_NAME",
col_RULE_TYPE = "RULE_TYPE",
col_LOWER = "LOWER",
col_UPPER = "UPPER",
col_METRIC_VALUE = "METRIC_VALUE",
col_INCREASE = "INCREASE",
...
)
Arguments
df.metrics |
Wide data frame with metric values to be evaluated. |
df.rules |
Data frame of metric thresholds to check. |
input.shape |
Shape of df.metrics; wide or long. Default is wide. |
col_SAMPLEID |
Column name for sample id. Default = "SAMPLEID" |
col_INDEX_NAME |
Column name for index name. Default = "INDEX_NAME" |
col_INDEX_CLASS |
Column name for index class Default = "INDEX_CLASS" |
col_LEVEL |
Column name for level. Default = "LEVEL" |
col_METRIC_NAME |
Column name for metric name. Default = "METRIC_NAME" |
col_RULE_TYPE |
Column name for rule type (e.g., Rule0). Default = "RULE_TYPE" |
col_LOWER |
Column name for lower limit. Default = "LOWER" |
col_UPPER |
Column name for upper limit. Default = "UPPER" |
col_METRIC_VALUE |
Column name for metric value. Default = "METRIC_VALUE" |
col_INCREASE |
Column name for if the metric value increases. Default = "INCREASE" |
... |
Arguments passed to 'BCG.MetricMembership' used internally |
Details
Converts metric values into BCG membership values. Uses a rules table to define the metrics, scoring range, and direction for each named index.
Deprecated col_SITE_TYPE for col_INDEX_CLASS in v2.0.0.9001.
Value
Returns a data frame of results in the long format.
Examples
# library(readxl)
# library(BioMonTools)
# Calculate Metrics
df_samps_bugs <- readxl::read_excel(
system.file("extdata/Data_BCG_PugLowWilVal.xlsx"
, package = "BCGcalc")
, guess_max = 10^6)
myDF <- df_samps_bugs[1:500, ]
myCols <- c("Area_mi2",
"SurfaceArea",
"Density_m2",
"Density_ft2")
# populate missing columns prior to metric calculation
col_missing <- c("INFRAORDER",
"HABITAT",
"ELEVATION_ATTR",
"GRADIENT_ATTR",
"WSAREA_ATTR",
"HABSTRUCT",
"UFC",
"SAMP_AREA_M2")
myDF[, col_missing] <- NA
df_met_val_bugs <- BioMonTools::metric.values(myDF
, "bugs"
, fun.cols2keep = myCols)
# Import Rules
df_rules <- readxl::read_excel(system.file("extdata/Rules.xlsx"
, package = "BCGcalc")
, sheet="Rules")
# Run function
df_met_memb <- BCG.Metric.Membership(df_met_val_bugs, df_rules)
# Show Results
#View(df_met_memb)
# Save Results
write.table(df_met_memb
, file.path(tempdir(), "Metric_Membership.tsv")
, row.names = FALSE
, col.names = TRUE
, sep = "\t")
Benthic Master Taxa List, BCG Puget Lowlands Willamette Valley
Description
Master taxa list for BCG model for Puget Lowlands Willamette Valley; current as of 2018-09-27.
This list is included for demonstration purposes only! Contact the proper entities to get a updated list for any analyses.
Usage
TaxaMaster_Ben_BCG_PugLowWilVal
Format
A data frame with 684 rows and 20 variables:
- TaxaID
unique taxonomic identifier
- Phylum
Taxonomic rank, Phylum
- SubPhylum
Taxonomic rank, SubPhylum
- Class
Taxonomic rank, Class
- SubClass
Taxonomic rank, SubClass
- Order
Taxonomic rank, Order
- SuperFamily
Taxonomic rank, SuperFamily
#'
- Family
Taxonomic rank, Family
- Tribe
Taxonomic rank, Tribe
- Genus
Taxonomic rank, Genus
- SubGenus
Taxonomic rank, SubGenus
- Species
Taxonomic rank, Species
- BCG_Attr
BCG Attribute
- NonTarget
Non-Target True/False
- Thermal_Indicator
thermal tolerance indicator
- Long_Lived
Long-lived indicator
- FFG
Function Feeding Group
- Habit
Habit
- Life_Cycle
Voltinism
- TolVal
Tolerance Value, all 7's, demonstration only
Details
To export to file use the code below.
write.csv(TaxaMaster_Ben_BCG_PugLowWilVal , "TaxaMaster_Ben_BCG_PugLowWilVal_20180314.csv")
Metric Values
Description
Example metric values
Usage
metrics_values
Format
A data frame with 678 observations on the following 448 variables.:
SAMPLEIDa character vector
AREA_MI2a numeric vector
SURFACEAREAa character vector
DENSITY_M2a logical vector
DENSITY_FT2a logical vector
INDEX_NAMEa character vector
INDEX_CLASSa character vector
ni_totala numeric vector
li_totala numeric vector
ni_Chiroa numeric vector
ni_EPTa numeric vector
ni_Tricha numeric vector
ni_Americoa numeric vector
ni_Gnorimoa numeric vector
ni_brackisha numeric vector
ni_Ramelloa numeric vector
nt_totala numeric vector
nt_Ampha numeric vector
nt_Bivala numeric vector
nt_Coleoa numeric vector
nt_COETa numeric vector
nt_CruMola numeric vector
nt_Decaa numeric vector
nt_Dipta numeric vector
nt_ECTa numeric vector
nt_Ephema numeric vector
nt_Ephemerellida numeric vector
nt_EPTa numeric vector
nt_ETa numeric vector
nt_Gasta numeric vector
nt_Hemipta numeric vector
nt_Heptaa numeric vector
nt_Insecta numeric vector
nt_Isopa numeric vector
nt_Megaa numeric vector
nt_Mola numeric vector
nt_Nemoura numeric vector
nt_NonInsa numeric vector
nt_Odona numeric vector
nt_OETa numeric vector
nt_Oligoa numeric vector
nt_Perlida numeric vector
nt_Plecoa numeric vector
nt_POETa numeric vector
nt_Pteroa numeric vector
nt_Rhyaa numeric vector
nt_Tipulida numeric vector
nt_Tricha numeric vector
nt_Tromba numeric vector
nt_Tubifa numeric vector
pi_Ampea logical vector
pi_AmpeHausta logical vector
pi_Ampha numeric vector
pi_AmphIsopa numeric vector
pi_Baeta numeric vector
pi_Bivala numeric vector
pi_Caena numeric vector
pi_Coleoa numeric vector
pi_COETa numeric vector
pi_Corba numeric vector
pi_CraCaeGama numeric vector
pi_Crua numeric vector
pi_CruMola numeric vector
pi_Decaa numeric vector
pi_Dipta numeric vector
pi_DiptNonInsa numeric vector
pi_ECTa numeric vector
pi_Ephema numeric vector
pi_EphemNoCaea numeric vector
pi_EphemNoCaeBaea numeric vector
pi_EPTa numeric vector
pi_EPTNoBaeHydroa numeric vector
pi_EPTNoCheua numeric vector
pi_EPTNoHydroa numeric vector
pi_ETa numeric vector
pi_Gasta numeric vector
pi_Hemipta numeric vector
pi_Hydroa numeric vector
pi_Hydro2EPTa numeric vector
pi_Hydro2Tricha numeric vector
pi_Insecta numeric vector
pi_Isopa numeric vector
pi_IsopGastHirua numeric vector
pi_Jugaa numeric vector
pi_JugaFlumia numeric vector
pi_Megaa numeric vector
pi_Mola numeric vector
pi_Nemataa numeric vector
pi_NonInsa numeric vector
pi_Odona numeric vector
pi_OETa numeric vector
pi_Oligoa numeric vector
pi_Plecoa numeric vector
pi_POETa numeric vector
pi_Sphaera numeric vector
pi_SphaerCorba numeric vector
pi_Tricha numeric vector
pi_TrichNoHydroa numeric vector
pi_Tromba numeric vector
pi_Tubifa numeric vector
pt_Ampha numeric vector
pt_Bivala numeric vector
pt_Coleoa numeric vector
pt_COETa numeric vector
pt_Decaa numeric vector
pt_Dipta numeric vector
pt_ECTa numeric vector
pt_Ephema numeric vector
pt_EPTa numeric vector
pt_ETa numeric vector
pt_Gasta numeric vector
pt_Hemipta numeric vector
pt_Insecta numeric vector
pt_Isopa numeric vector
pt_Megaa numeric vector
pt_NonInsa numeric vector
pt_Odona numeric vector
pt_OETa numeric vector
pt_Oligoa numeric vector
pt_Plecoa numeric vector
pt_POETa numeric vector
pt_Tricha numeric vector
pt_Tromba numeric vector
nt_Chiroa numeric vector
pi_Chiroa numeric vector
pt_Chiroa numeric vector
pi_Orthoa numeric vector
pi_Tanyta numeric vector
pi_Tanypa numeric vector
pi_COC2Chia numeric vector
pi_ChCr2Chia numeric vector
pi_Orth2Chia numeric vector
pi_Tanyp2Chia numeric vector
pi_ChiroAnnea numeric vector
pi_dom02_BCG_att456_NoJugaRissa numeric vector
nt_NonIns_BCG_att456a numeric vector
pi_NonIns_BCG_att456a numeric vector
pt_NonIns_BCG_att456a numeric vector
nt_NonInsJugaRiss_BCG_att456a numeric vector
pi_NonInsJugaRiss_BCG_att456a numeric vector
pt_NonInsJugaRiss_BCG_att456a numeric vector
pi_SimBtria numeric vector
pi_Colesensa numeric vector
nt_longliveda numeric vector
nt_noteworthya numeric vector
nt_ffg2_preda numeric vector
ni_Notoa numeric vector
nt_ti_stenocolda numeric vector
nt_ti_colda numeric vector
nt_ti_coola numeric vector
nt_ti_warma numeric vector
nt_ti_stenowarma numeric vector
nt_ti_eurya numeric vector
nt_ti_cowaa numeric vector
nt_ti_naa numeric vector
nt_ti_stenocold_colda numeric vector
nt_ti_stenocold_cold_coola numeric vector
nt_ti_cowa_warm_stenowarma numeric vector
nt_ti_warm_stenowarma numeric vector
pi_ti_stenocolda numeric vector
pi_ti_colda numeric vector
pi_ti_coola numeric vector
pi_ti_warma numeric vector
pi_ti_stenowarma numeric vector
pi_ti_eurya numeric vector
pi_ti_cowaa numeric vector
pi_ti_naa numeric vector
pi_ti_stenocold_colda numeric vector
pi_ti_stenocold_cold_coola numeric vector
pi_ti_cowa_warm_stenowarma numeric vector
pi_ti_warm_stenowarma numeric vector
pt_ti_stenocolda numeric vector
pt_ti_colda numeric vector
pt_ti_coola numeric vector
pt_ti_warma numeric vector
pt_ti_stenowarma numeric vector
pt_ti_eurya numeric vector
pt_ti_cowaa numeric vector
pt_ti_naa numeric vector
pt_ti_stenocold_colda numeric vector
pt_ti_stenocold_cold_coola numeric vector
pt_ti_cowa_warm_stenowarma numeric vector
pt_ti_warm_stenowarma numeric vector
ri_ti_sccc_wswa numeric vector
nt_tv_intola numeric vector
nt_tv_intol4a numeric vector
nt_tv_tolera numeric vector
pi_tv_intola numeric vector
pi_tv_intol4a numeric vector
pi_tv_tolera numeric vector
pi_tv_toler6a numeric vector
pt_tv_intola numeric vector
pt_tv_intol4a numeric vector
pt_tv_tolera numeric vector
nt_tv_intol4_EPTa numeric vector
nt_tv_ntola numeric vector
nt_tv_stola numeric vector
pi_tv_ntola numeric vector
pi_tv_stola numeric vector
pt_tv_ntola numeric vector
pt_tv_stola numeric vector
pi_tv2_intola numeric vector
pi_tv2_toler_ISA_SalHi_xFLa logical vector
pi_tv2_intol_ISA_SalHi_xFLa logical vector
pt_tv2_intol_ISA_SalHi_xFLa logical vector
nt_ffg_cola numeric vector
nt_ffg_filta numeric vector
nt_ffg_preda numeric vector
nt_ffg_scrapa numeric vector
nt_ffg_shreda numeric vector
nt_ffg_maha numeric vector
nt_ffg_omna numeric vector
nt_ffg_para numeric vector
nt_ffg_piha numeric vector
nt_ffg_xyla numeric vector
nt_ffg_pred_scrap_shreda numeric vector
pi_ffg_cola numeric vector
pi_ffg_filta numeric vector
pi_ffg_preda numeric vector
pi_ffg_scrapa numeric vector
pi_ffg_shreda numeric vector
pi_ffg_maha numeric vector
pi_ffg_omna numeric vector
pi_ffg_para numeric vector
pi_ffg_piha numeric vector
pi_ffg_xyla numeric vector
pi_ffg_col_filta numeric vector
pt_ffg_cola numeric vector
pt_ffg_filta numeric vector
pt_ffg_preda numeric vector
pt_ffg_scrapa numeric vector
pt_ffg_shreda numeric vector
pt_ffg_maha numeric vector
pt_ffg_omna numeric vector
pt_ffg_para numeric vector
pt_ffg_piha numeric vector
pt_ffg_xyla numeric vector
nt_ffg2_intfacea logical vector
nt_ffg2_subsurfa logical vector
pi_ffg2_scavburra logical vector
nt_habit_burrowa numeric vector
nt_habit_climba numeric vector
nt_habit_clinga numeric vector
nt_habit_sprawla numeric vector
nt_habit_swima numeric vector
pi_habit_burrowa numeric vector
pi_habit_climba numeric vector
pi_habit_clinga numeric vector
pi_habit_sprawla numeric vector
pi_habit_swima numeric vector
pt_habit_burrowa numeric vector
pt_habit_climba numeric vector
pt_habit_clinga numeric vector
pt_habit_sprawla numeric vector
pt_habit_swima numeric vector
pi_habit_cling_PlecoNoClinga numeric vector
nt_volt_multia numeric vector
nt_volt_semia numeric vector
nt_volt_unia numeric vector
pi_volt_multia numeric vector
pi_volt_semia numeric vector
pi_volt_unia numeric vector
pt_volt_multia numeric vector
pt_volt_semia numeric vector
pt_volt_unia numeric vector
pi_dom01a numeric vector
pi_dom02a numeric vector
pi_dom03a numeric vector
pi_dom04a numeric vector
pi_dom05a numeric vector
pi_dom06a numeric vector
pi_dom07a numeric vector
pi_dom08a numeric vector
pi_dom09a numeric vector
pi_dom10a numeric vector
x_Becksa numeric vector
x_Becks3a numeric vector
x_HBIa numeric vector
x_HBI2a numeric vector
x_NCBIa numeric vector
x_Shan_ea numeric vector
x_Shan_2a numeric vector
x_Shan_10a numeric vector
x_Da numeric vector
x_D_Ga numeric vector
x_D_Mga numeric vector
x_Evennessa numeric vector
nt_habitat_braca numeric vector
nt_habitat_depoa numeric vector
nt_habitat_genea numeric vector
nt_habitat_heada numeric vector
nt_habitat_rheoa numeric vector
nt_habitat_rivea numeric vector
nt_habitat_speca numeric vector
nt_habitat_unkna numeric vector
pi_habitat_braca numeric vector
pi_habitat_depoa numeric vector
pi_habitat_genea numeric vector
pi_habitat_heada numeric vector
pi_habitat_rheoa numeric vector
pi_habitat_rivea numeric vector
pi_habitat_speca numeric vector
pi_habitat_unkna numeric vector
pt_habitat_braca numeric vector
pt_habitat_depoa numeric vector
pt_habitat_genea numeric vector
pt_habitat_heada numeric vector
pt_habitat_rheoa numeric vector
pt_habitat_rivea numeric vector
pt_habitat_speca numeric vector
pt_habitat_unkna numeric vector
nt_BCG_att1a numeric vector
nt_BCG_att1ia numeric vector
nt_BCG_att1ma numeric vector
nt_BCG_att12a numeric vector
nt_BCG_att1i2a numeric vector
nt_BCG_att123a numeric vector
nt_BCG_att1i23a numeric vector
nt_BCG_att1i236ia numeric vector
nt_BCG_att2a numeric vector
nt_BCG_att23a numeric vector
nt_BCG_att234a numeric vector
nt_BCG_att3a numeric vector
nt_BCG_att4a numeric vector
nt_BCG_att45a numeric vector
nt_BCG_att456a numeric vector
nt_BCG_att5a numeric vector
nt_BCG_att56a numeric vector
nt_BCG_att56ta numeric vector
nt_BCG_att6a numeric vector
nt_BCG_att6ia numeric vector
nt_BCG_att6ma numeric vector
nt_BCG_att6ta numeric vector
nt_BCG_attNAa numeric vector
nt_BCG_att4ba numeric vector
nt_BCG_att4wa numeric vector
nt_BCG_att1i234b5a numeric vector
nt_BCG_att1i234w5a numeric vector
nt_Ephem_BCG_att1i2a numeric vector
nt_EPT_BCG_att123a numeric vector
nt_EPT_BCG_att1i23a numeric vector
nt_Pleco_BCG_att1i2a numeric vector
nt_Trich_BCG_att1i2a numeric vector
pi_BCG_att1a numeric vector
pi_BCG_att1ia numeric vector
pi_BCG_att1ma numeric vector
pi_BCG_att12a numeric vector
pi_BCG_att1i2a numeric vector
pi_BCG_att123a numeric vector
pi_BCG_att1i23a numeric vector
pi_BCG_att1i236ia numeric vector
pi_BCG_att2a numeric vector
pi_BCG_att23a numeric vector
pi_BCG_att234a numeric vector
pi_BCG_att3a numeric vector
pi_BCG_att4a numeric vector
pi_BCG_att45a numeric vector
pi_BCG_att456a numeric vector
pi_BCG_att5a numeric vector
pi_BCG_att5extraa numeric vector
pi_BCG_att56a numeric vector
pi_BCG_att56ta numeric vector
pi_BCG_att6a numeric vector
pi_BCG_att6ia numeric vector
pi_BCG_att6ma numeric vector
pi_BCG_att6ta numeric vector
pi_BCG_attNAa numeric vector
pi_BCG_att4ba numeric vector
pi_BCG_att4wa numeric vector
pi_BCG_att1i234b5a numeric vector
pi_BCG_att1i234w5a numeric vector
pi_EPT_BCG_att123a numeric vector
pi_EPT_BCG_att1i23a numeric vector
pt_BCG_att1a numeric vector
pt_BCG_att1ia numeric vector
pt_BCG_att1ma numeric vector
pt_BCG_att12a numeric vector
pt_BCG_att1i2a numeric vector
pt_BCG_att123a numeric vector
pt_BCG_att1i23a numeric vector
pt_BCG_att1i236ia numeric vector
pt_BCG_att2a numeric vector
pt_BCG_att23a numeric vector
pt_BCG_att234a numeric vector
pt_BCG_att3a numeric vector
pt_BCG_att4a numeric vector
pt_BCG_att45a numeric vector
pt_BCG_att456a numeric vector
pt_BCG_att5a numeric vector
pt_BCG_att56a numeric vector
pt_BCG_att56ta numeric vector
pt_BCG_att6a numeric vector
pt_BCG_att6ia numeric vector
pt_BCG_att6ma numeric vector
pt_BCG_att6ta numeric vector
pt_BCG_attNAa numeric vector
pt_BCG_att4ba numeric vector
pt_BCG_att4wa numeric vector
pt_BCG_att1i234b5a numeric vector
pt_BCG_att1i234w5a numeric vector
pt_EPT_BCG_att123a numeric vector
pt_EPT_BCG_att1i23a numeric vector
x_UFCa numeric vector
nt_elev_lowa numeric vector
nt_elev_higha numeric vector
nt_grad_lowa numeric vector
nt_grad_moda numeric vector
nt_grad_higha numeric vector
nt_wsarea_smalla numeric vector
nt_wsarea_mediuma numeric vector
nt_wsarea_largea numeric vector
nt_wsarea_xlargea numeric vector
nt_habstruct_coarsesuba numeric vector
nt_habstruct_noflowa numeric vector
nt_habstruct_rootmata numeric vector
nt_habstruct_snaga numeric vector
nt_habstruct_NAa numeric vector
pi_habstruct_coarsesuba numeric vector
pi_habstruct_noflowa numeric vector
pi_habstruct_rootmata numeric vector
pi_habstruct_snaga numeric vector
pi_habstruct_NAa numeric vector
pt_habstruct_coarsesuba numeric vector
pt_habstruct_noflowa numeric vector
pt_habstruct_rootmata numeric vector
pt_habstruct_snaga numeric vector
pt_habstruct_NAa numeric vector
nval_habstructa numeric vector
nfam_Coleoa numeric vector
nfam_Ephema numeric vector
nfam_Odona numeric vector
nfam_Tricha numeric vector
ngen_Coleoa numeric vector
ngen_Ephema numeric vector
ngen_Odona numeric vector
ngen_Tricha numeric vector
ngen_Elmida numeric vector
nt_NonInsArachDeca_BCG_att456a numeric vector
pi_NonInsArachDeca_BCG_att456a numeric vector
pt_NonInsArachDeca_BCG_att456a numeric vector
nt_NonInsArachDecaJugaRiss_BCG_att456a numeric vector
pi_NonInsArachDecaJugaRiss_BCG_att456a numeric vector
pt_NonInsArachDecaJugaRiss_BCG_att456a numeric vector
nt_NonInsTrombJuga_BCG_att456a numeric vector
pi_NonInsTrombJuga_BCG_att456a numeric vector
pt_NonInsTrombJuga_BCG_att456a numeric vector
nt_oneinda numeric vector
pt_oneinda numeric vector