Trim excess text from taxa names. Doing this before querying a taxonomic authority improves matching.
trim_taxa(x = NULL, path = NULL)
(character) A list of taxa names
(character) The path to the directory containing taxa_map.csv
If using x
, then an updated list of taxa is returned.
If using path
, then an updated version of taxa_map.csv
is written to file and returned as a data frame.
Characters trimmed by this function:
White spaces (trailing and leading)
Species abbreviations following a genus value (e.g. "Sp.", "Spp.", "Cf.", "Cf...", etc.)
# Input a list of names
my_taxa <- c("Koeleria_cristata", "Cyperus sp.", "Poa Cf. ")
my_taxa <- trim_taxa(x = my_taxa)
my_taxa
#> [1] "Koeleria cristata" "Cyperus" "Poa"
# Input taxa_map.csv
data <- data.table::fread(system.file("example_data.txt", package = 'taxonomyCleanr'))
my_path <- tempdir()
tm <- create_taxa_map(path = my_path, x = data, col = "Species")
tm <- trim_taxa(path = my_path)
tm
#> taxa_raw taxa_trimmed taxa_replacement
#> 1: Mosses <NA> NA
#> 2: Unsorted biomass <NA> NA
#> 3: Achillea millefolium(lanulosa) <NA> NA
#> 4: Crepis tectorum <NA> NA
#> 5: Cyperus sp. Cyperus NA
#> 6: Euphorbia glyptosperma <NA> NA
#> 7: Lespedeza capitata <NA> NA
#> 8: Achillea millefolium(lanulosaaaa) <NA> NA
#> 9: Achillea millefolium(lanulosabb) <NA> NA
#> 10: Achillea millefolium(lanulosacc) <NA> NA
#> 11: Lepidium densiflorum <NA> NA
#> 12: Poa pratensis <NA> NA
#> 13: Rumex acetosella <NA> NA
#> 14: Schizachyrium scoparium <NA> NA
#> 15: Bouteloua gracilis <NA> NA
#> 16: Koeleria cristata <NA> NA
#> 17: Liatris aspera <NA> NA
#> 18: Lupinus perennis <NA> NA
#> 19: Panicum virgatum <NA> NA
#> 20: Petalostemum purpureum <NA> NA
#> 21: Petalostemum villosum <NA> NA
#> 22: Solidago nemoralis <NA> NA
#> 23: Sorghastrum nutans <NA> NA
#> 24: Stipa spartea <NA> NA
#> 25: Andropogon gerardi <NA> NA
#> 26: Bouteloua curtipendula <NA> NA
#> 27: Coreopsis palmata <NA> NA
#> 28: Miscellaneous litter <NA> NA
#> 29: Petalostemum candidum <NA> NA
#> 30: Solidago rigida <NA> NA
#> 31: Sporobolus cryptandrus <NA> NA
#> 32: Agropyron repens <NA> NA
#> 33: Aristida basiramea <NA> NA
#> 34: Digitaria sp. Digitaria NA
#> 35: Erigeron canadensis <NA> NA
#> 36: Hedeoma hispida <NA> NA
#> 37: Physalis virginiana <NA> NA
#> 38: Taraxicum officinalis <NA> NA
#> 39: Agrostis scabra <NA> NA
#> 40: Ambrosia artemisiifolia elatior <NA> NA
#> 41: Eragrostis spectabilis <NA> NA
#> 42: Amorpha canescens <NA> NA
#> 43: -9999 <NA> NA
#> 44: Yellow Perch <NA> NA
#> 45: Rainbow smelt <NA> NA
#> 46: Large mouth bass <NA> NA
#> 47: Petalostemum S.p. Petalostemum NA
#> 48: Poa Cf. Poa NA
#> 49: Schizachyrium spp. Schizachyrium NA
#> 50: Petalostemum <NA> NA
#> 51: Poa cf... Poa NA
#> 52: Schizachyrium sPp Schizachyrium NA
#> 53: _Koeleria_cristata Koeleria cristata NA
#> 54: Lespedeza_capitata Lespedeza capitata NA
#> 55: _Liatris_aspera_ Liatris aspera NA
#> 56: <NA> NA
#> 57: Oncorhynchus tshawytscha <NA> NA
#> 58: Oncorhynchus gorbuscha <NA> NA
#> 59: Oncorhynchus kisutch <NA> NA
#> taxa_raw taxa_trimmed taxa_replacement
#> taxa_removed taxa_clean rank authority authority_id score difference
#> 1: NA NA NA NA NA NA NA
#> 2: NA NA NA NA NA NA NA
#> 3: NA NA NA NA NA NA NA
#> 4: NA NA NA NA NA NA NA
#> 5: NA NA NA NA NA NA NA
#> 6: NA NA NA NA NA NA NA
#> 7: NA NA NA NA NA NA NA
#> 8: NA NA NA NA NA NA NA
#> 9: NA NA NA NA NA NA NA
#> 10: NA NA NA NA NA NA NA
#> 11: NA NA NA NA NA NA NA
#> 12: NA NA NA NA NA NA NA
#> 13: NA NA NA NA NA NA NA
#> 14: NA NA NA NA NA NA NA
#> 15: NA NA NA NA NA NA NA
#> 16: NA NA NA NA NA NA NA
#> 17: NA NA NA NA NA NA NA
#> 18: NA NA NA NA NA NA NA
#> 19: NA NA NA NA NA NA NA
#> 20: NA NA NA NA NA NA NA
#> 21: NA NA NA NA NA NA NA
#> 22: NA NA NA NA NA NA NA
#> 23: NA NA NA NA NA NA NA
#> 24: NA NA NA NA NA NA NA
#> 25: NA NA NA NA NA NA NA
#> 26: NA NA NA NA NA NA NA
#> 27: NA NA NA NA NA NA NA
#> 28: NA NA NA NA NA NA NA
#> 29: NA NA NA NA NA NA NA
#> 30: NA NA NA NA NA NA NA
#> 31: NA NA NA NA NA NA NA
#> 32: NA NA NA NA NA NA NA
#> 33: NA NA NA NA NA NA NA
#> 34: NA NA NA NA NA NA NA
#> 35: NA NA NA NA NA NA NA
#> 36: NA NA NA NA NA NA NA
#> 37: NA NA NA NA NA NA NA
#> 38: NA NA NA NA NA NA NA
#> 39: NA NA NA NA NA NA NA
#> 40: NA NA NA NA NA NA NA
#> 41: NA NA NA NA NA NA NA
#> 42: NA NA NA NA NA NA NA
#> 43: NA NA NA NA NA NA NA
#> 44: NA NA NA NA NA NA NA
#> 45: NA NA NA NA NA NA NA
#> 46: NA NA NA NA NA NA NA
#> 47: NA NA NA NA NA NA NA
#> 48: NA NA NA NA NA NA NA
#> 49: NA NA NA NA NA NA NA
#> 50: NA NA NA NA NA NA NA
#> 51: NA NA NA NA NA NA NA
#> 52: NA NA NA NA NA NA NA
#> 53: NA NA NA NA NA NA NA
#> 54: NA NA NA NA NA NA NA
#> 55: NA NA NA NA NA NA NA
#> 56: NA NA NA NA NA NA NA
#> 57: NA NA NA NA NA NA NA
#> 58: NA NA NA NA NA NA NA
#> 59: NA NA NA NA NA NA NA
#> taxa_removed taxa_clean rank authority authority_id score difference