Interacts with a suite of web API's for taxonomic tasks, such as getting database specific taxonomic identifiers, verifying species names, getting taxonomic hierarchies, fetching downstream and upstream taxonomic names, getting taxonomic synonyms, converting scientific to common names and vice versa, and more.
taxize allows users to search over many taxonomic data sources for species names (scientific and common) and download up and downstream taxonomic hierarchical information - among other things.
taxize tutorial is can be found at https://ropensci.org/tutorials/taxize.html
The functions in the package that hit a specific API have a prefix and suffix separated by an underscore. They follow the format of
service_whatitdoes. For example,
gnr_resolve uses the Global Names Resolver API to resolve species names. General functions in the package that don't hit a specific API don't have two words separated by an underscore, e.g.,
You need API keys for Encyclopedia of Life (EOL), and Tropicos.
Note that a few data sources require SOAP web services, which are difficult to support in R across all operating systems. These include: World Register of Marine Species, Pan-European Species directories Infrastructure , and Mycobank, so far. Data sources that use SOAP web services have been moved to a new package called
taxizesoap. Find it at https://github.com/ropensci/taxizesoap.
|Souce||Function prefix||API Docs||API key|
|Encylopedia of Life||
|Taxonomic Name Resolution Service||
|Integrated Taxonomic Information Service||
|Global Names Resolver||
|Global Names Index||
|IUCN Red List||
|Theplantlist dot org||
|Catalogue of Life||
|National Center for Biotechnology Information||
|CANADENSYS Vascan name search API||
|International Plant Names Index (IPNI)||
|Barcode of Life Data Systems (BOLD)||
|National Biodiversity Network (UK)||
|Index of Names (ION)||
|Open Tree of Life (TOL)||
**: There are none! We suggest using
TPLck functions in the taxonstand package. We provide two functions to get bullk data:
***: There are none! The function scrapes the web directly.
See the newdatasource tag in the issue tracker
For more examples see the tutorial
Windows users install Rtools first.
taxize revolves around taxonomic identifiers. Because, as you know, names can be a mess (misspelled, synonyms, etc.), it's better to get an identifier that a particular data sources knows about, then we can move forth acquiring more fun taxonomic data.
uids <- get_uid(c("Chironomus riparius", "Chaetopteryx"))
Classifications - think of a species, then all the taxonomic ranks up from that species, like genus, family, order, class, kingdom.
out <- classification(uids)lapply(out, head)#> $`315576`#> name rank id#> 1 cellular organisms no rank 131567#> 2 Eukaryota superkingdom 2759#> 3 Opisthokonta no rank 33154#> 4 Metazoa kingdom 33208#> 5 Eumetazoa no rank 6072#> 6 Bilateria no rank 33213#>#> $`492549`#> name rank id#> 1 cellular organisms no rank 131567#> 2 Eukaryota superkingdom 2759#> 3 Opisthokonta no rank 33154#> 4 Metazoa kingdom 33208#> 5 Eumetazoa no rank 6072#> 6 Bilateria no rank 33213
Get immediate children of Salmo. In this case, Salmo is a genus, so this gives species within the genus.
children("Salmo", db = 'ncbi')#> $Salmo#> childtaxa_id childtaxa_name childtaxa_rank#> 1 1509524 Salmo marmoratus x Salmo trutta species#> 2 1484545 Salmo cf. cenerinus BOLD:AAB3872 species#> 3 1483130 Salmo zrmanjaensis species#> 4 1483129 Salmo visovacensis species#> 5 1483128 Salmo rhodanensis species#> 6 1483127 Salmo pellegrini species#> 7 1483126 Salmo opimus species#> 8 1483125 Salmo macedonicus species#> 9 1483124 Salmo lourosensis species#> 10 1483123 Salmo labecula species#> 11 1483122 Salmo farioides species#> 12 1483121 Salmo chilo species#> 13 1483120 Salmo cettii species#> 14 1483119 Salmo cenerinus species#> 15 1483118 Salmo aphelios species#> 16 1483117 Salmo akairos species#> 17 1201173 Salmo peristericus species#> 18 1035833 Salmo ischchan species#> 19 700588 Salmo labrax species#> 20 237411 Salmo obtusirostris species#> 21 235141 Salmo platycephalus species#> 22 234793 Salmo letnica species#> 23 62065 Salmo ohridanus species#> 24 33518 Salmo marmoratus species#> 25 33516 Salmo fibreni species#> 26 33515 Salmo carpio species#> 27 8032 Salmo trutta species#> 28 8030 Salmo salar species#>#> attr(,"class")#>  "children"#> attr(,"db")#>  "ncbi"
Get all species in the genus Apis
downstream("Apis", db = 'itis', downto = 'Species', verbose = FALSE)#> $Apis#> tsn parentname parenttsn taxonname rankid rankname#> 1 154396 Apis 154395 Apis mellifera 220 species#> 2 763550 Apis 154395 Apis andreniformis 220 species#> 3 763551 Apis 154395 Apis cerana 220 species#> 4 763552 Apis 154395 Apis dorsata 220 species#> 5 763553 Apis 154395 Apis florea 220 species#> 6 763554 Apis 154395 Apis koschevnikovi 220 species#> 7 763555 Apis 154395 Apis nigrocincta 220 species#>#> attr(,"class")#>  "downstream"#> attr(,"db")#>  "itis"
Get all genera up from the species Pinus contorta (this includes the genus of the species, and its co-genera within the same family).
upstream("Pinus contorta", db = 'itis', upto = 'Genus', verbose=FALSE)#> $`Pinus contorta`#> tsn parentname parenttsn taxonname rankid rankname#> 1 18031 Pinaceae 18030 Abies 180 genus#> 2 18033 Pinaceae 18030 Picea 180 genus#> 3 18035 Pinaceae 18030 Pinus 180 genus#> 4 183396 Pinaceae 18030 Tsuga 180 genus#> 5 183405 Pinaceae 18030 Cedrus 180 genus#> 6 183409 Pinaceae 18030 Larix 180 genus#> 7 183418 Pinaceae 18030 Pseudotsuga 180 genus#> 8 822529 Pinaceae 18030 Keteleeria 180 genus#> 9 822530 Pinaceae 18030 Pseudolarix 180 genus#>#> attr(,"class")#>  "upstream"#> attr(,"db")#>  "itis"
synonyms("Acer drummondii", db="itis")#> $`Acer drummondii`#> sub_tsn acc_name acc_tsn#> 1 526853 Acer rubrum var. drummondii 526853#> 2 526853 Acer rubrum var. drummondii 526853#> 3 526853 Acer rubrum var. drummondii 526853#> author author#> 1 (Hook. & Arn. ex Nutt.) Sarg. (Hook. & Arn. ex Nutt.) E. Murray#> 2 (Hook. & Arn. ex Nutt.) Sarg. Hook. & Arn. ex Nutt.#> 3 (Hook. & Arn. ex Nutt.) Sarg. (Hook. & Arn. ex Nutt.) Small#> syn_name syn_tsn#> 1 Acer rubrum ssp. drummondii 28730#> 2 Acer drummondii 183671#> 3 Rufacer drummondii 183672#>#> attr(,"class")#>  "synonyms"#> attr(,"db")#>  "itis"
get_ids(names="Salvelinus fontinalis", db = c('itis', 'ncbi'), verbose=FALSE)#> $itis#> Salvelinus fontinalis#> "162003"#> attr(,"match")#>  "found"#> attr(,"multiple_matches")#>  FALSE#> attr(,"pattern_match")#>  FALSE#> attr(,"uri")#>  ""#> attr(,"class")#>  "tsn"#>#> $ncbi#> Salvelinus fontinalis#> "8038"#> attr(,"class")#>  "uid"#> attr(,"match")#>  "found"#> attr(,"multiple_matches")#>  FALSE#> attr(,"pattern_match")#>  FALSE#> attr(,"uri")#>  ""#>#> attr(,"class")#>  "ids"
You can limit to certain rows when getting ids in any
get_ids(names="Poa annua", db = "gbif", rows=1)#> $gbif#> Poa annua#> "2704179"#> attr(,"class")#>  "gbifid"#> attr(,"match")#>  "found"#> attr(,"multiple_matches")#>  TRUE#> attr(,"pattern_match")#>  FALSE#> attr(,"uri")#>  ""#>#> attr(,"class")#>  "ids"
Furthermore, you can just back all ids if that's your jam with the
get_*_() functions (all
get_*() functions with additional
_ underscore at end of function name)
get_ids_(c("Chironomus riparius", "Pinus contorta"), db = 'nbn', rows=1:3)#> $nbn#> $nbn$`Chironomus riparius`#> ptaxonversionkey searchmatchtitle rank namestatus#> 1 NBNSYS0000027573 Chironomus riparius species Recommended#> 2 NHMSYS0001718042 Elaphrus riparius species Recommended#> 3 NBNSYS0000023345 Paederus riparius species Recommended#>#> $nbn$`Pinus contorta`#> ptaxonversionkey searchmatchtitle rank namestatus#> 1 NHMSYS0000494848 Pinus contorta var. contorta variety Recommended#> 2 NBNSYS0000004786 Pinus contorta species Recommended#> 3 NHMSYS0000494848 Pinus contorta subsp. contorta subspecies Recommended#>#>#> attr(,"class")#>  "ids"
sci2comm('Helianthus annuus', db = 'itis')#> $`Helianthus annuus`#>  "common sunflower" "sunflower" "wild sunflower"#>  "annual sunflower"
comm2sci("black bear", db = "itis")#> $`black bear`#>  "Chiropotes satanas" "Ursus thibetanus"#>  "Ursus thibetanus" "Ursus americanus luteolus"#>  "Ursus americanus" "Ursus americanus"#>  "Ursus americanus americanus"
spp <- c("Sus scrofa", "Homo sapiens", "Nycticebus coucang")lowest_common(spp, db = "ncbi")#> name rank id#> 21 Boreoeutheria below-class 1437010
as.uid(315567)#>  "315567"#> attr(,"class")#>  "uid"#> attr(,"match")#>  "found"#> attr(,"multiple_matches")#>  FALSE#> attr(,"pattern_match")#>  FALSE#> attr(,"uri")#>  ""
as.uid(list("315567", "3339", "9696"))#>  "315567" "3339" "9696"#> attr(,"class")#>  "uid"#> attr(,"match")#>  "found" "found" "found"#> attr(,"multiple_matches")#>  FALSE FALSE FALSE#> attr(,"pattern_match")#>  FALSE FALSE FALSE#> attr(,"uri")#>  ""#>  ""#>  ""
out <- as.uid(c(315567, 3339, 9696))(res <- data.frame(out))#> ids class match multiple_matches pattern_match#> 1 315567 uid found FALSE FALSE#> 2 3339 uid found FALSE FALSE#> 3 9696 uid found FALSE FALSE#> uri#> 1#> 2#> 3
Check out our milestones to see what we plan to get done for each version.
taxizein R doing
citation(package = 'taxize')
classification()gains new method for TOL data
lowest_common()gains new method for TOL data
ritispackage, an external dependency for ITIS taxonomy data. Note that a large number of ITIS functions were removed, and are now available via the package
ritis. However, there are still many high level functions for working with ITIS data (see functions prefixed with
classification.tsn(), and similar high level functions remain unchanged. (#525)
eubon()fxn is now
eubon_search(), although either still work - though
eubon()will be made defunct in the next version of this package. Additional new functions were added:
lowest_common()function gains two new data source options: COL (Catalogue of Life) and TOL (Tree of Life) (#505)
synonyms_df()as a slim wrapper around
data.table::rbindlist()to make it easy to combine many outputs from
synonyms()for a single data source - there is a lot of heterogeneity among data sources in how they report synonyms data, so we don't attempt to combine data across sources (#533)
tax_name()in which when an invalid taxon was searched for then
classification()returned no data and caused an error. Fixed now. (#560) thanks @ljvillanueva for reporting it!
gnr_resolve()in which order of input names to the function was not retained. fixed now. (#561) thanks @bomeara for reporting it!
gbif_parse()- data format changed coming back from GBIF - needed to replace
NA(#568) thanks @ChrKoenig for reporting it!
get_*()functions now have new attributes to further help the user:
multiple_matches(logical) indicating whether there were multiple matches or not, and
pattern_match(logical) indicating whether a pattern match was made, or not. (#550) from (#547) discussion, thanks @ahhurlbert ! see also (#551)
gnr_resolve()now retains user supplied taxa that had no matches - this could affect your code, make sure to check your existing code (#558)
gnr_resolve()- stop sorting output data.frame, so order of rows in output data.frame now same as user input vector/list (#559)
sub_rows()inside of most
get_*()functions to not fail when the data.frame rows were less than that requested by the user in
get_gbifid(), as sometimes calls failed because we now return numberic IDs but used to return character IDs (#555)
get_()functions to call the internal
sub_rows()function later in the function flow so as not to interfere with taxonomic based filtering (e.g., user filtering by a taxonomic rank) (#555)
gnr_resolve(), to not fail on parsing when no data returned when a preferred data source specified (#557)
iucn_summary()(#543) thanks @mcsiple
ncbi_get_taxon_summary()suggesting to break up the ids into chunks (#541) thanks @daattali
itis_acceptname()to accept multiple names (#534) and now gives back same output regardless of whether match found or not (#531)
tax_name()for some queries that return no classification data via internal call to
classification()(#542) thanks @daattali
tax_name()(#530) thanks @ibartomeus
requireNamespace()in examples to make sure user has
gisd_invasive()to point to new location in the originr package. Also, cleaned out code in those functions as not avail. anymore (#494)
get_gbifid()to use new internal code to provide two ways to search GBIF taxonomy API, either via
/species/search, instead of
/species/suggest, which we used previously. The suggest route was too coarse.
get_gbifid()also gains a parameter
methodto toggle whether you search for names using
col_search()to handle when COL can return a value of
missapplied name, which a
switch()statement didn't handle yet (#511) thanks @JoStaerk !
col_search()(#523) thanks @zachary-foster !
bold, which fixes
taxize::bold_search(), so no actual changes in
taxizefor this, but take note (#521)
gnr_resolve()where we indexed to data incorrectly. And added tests to account for this problem. Thanks @raredd ! (#519) (#520)
iucn_summary()introduced in last version.
iucn_summary()now uses the package
rredlist, which requires an API key, and I didn't document how to use the key. Function now allows user to pass the key in as a parameter, and documents how to get a key and save it in either
lowest_common()for obtaining the lowest common taxon and rank for a given taxon name or ID. Methods so far for ITIS, NCBI, and GBIF (#505)
iucn_summary_id()- same as
iucn_summary(), except takes IUCN IDs as input instead of taxonomic names (#493)
iucn_summary()fixes, long story short: a number of bug fixes, and uses the new IUCN API via the newish package
rredlistwhen IDs are given as input, but uses the old IUCN API when taxonomic names given. Also: gains new parameter
distr_details(#174) (#472) (#487) (#488)
xml2for XML parsing (#499)
httr::contentto explicitly state
gnr_resolve()now outputs a column (
user_supplied_name) for the exact input taxon name - facilitates merging data back to original data inputs (#486) thanks @Alectoria
eol_dataobjects()gains new parameter
taxonomyto toggle whether to return any taxonomy details from different data providers (#497)
classification()was giving back rank values in mixed case from different data providers (e.g.,
Class). All rank values are now all lowercase (#504)
get_gbfidto 50 from 20. Gives back more results, so more likely to get the thing searched for (#513)
gni_search()to make all output columns
tpl_get()all gain a new parameter
...to pass on curl options to
get_eolid(): URI returned now always has the pageid, and goes to the right place; API key if passed in now actually used, woopsy (#484)
get_uid(): when a taxon not found, the "match" attribute was saying found sometimes anyway - that is now fixed; additionally, fixed docs to correctly state that we give back
'NA due to ask=FALSE'when
ask = FALSE(#489) Additionally, made this doc fix in other
get_tpsid(): Tropicos doesn't allow periods (
.) in query strings, so those are URL encoded now; Tropicos doesn't like sub-specific rank names in name query strings, so we warn when those are found, but don't alter user inputs; and improved docs to be more clear about how the function fails (#491) thanks @scelmendorf !
classification(db = "itis")to fail better when no taxa found (#495) thanks @ashenkin !
eol_pages()fixes: the EOL API route for this method gained a new parameter
taxonomy, this function gains that parameter. That change caused this fxn to fail. Now fixed. Also, parameter
col_search()due to when
misapplied namecome back as a data slot. There was previously no parser for that type. Now there is, and it works (#512)
R >= 3.2.1. Good idea to update your R installation anyway (#476)
ion()for obtaining data from Index of Organism Names (#345)
eubon()for obtaining data from EU (European Union) BON taxonomy (#466) Note that you may onloy get partial results for some requests as paging isn't implemented yet in the EU BON API (#481)
fg_*()for obtaining data from Index Fungorum. More work has to be done yet on this data source, but these initial functions allow some Index Fungorum data access (#471)
gbif_downstream()for obtaining downstream names from GBIF's backbone taxonomy. Also available in
downstream(), where you can request downstream names from GBIF, along with other data sources (#414)
dbparameters to warn users that if they provide the wrong
dbvalue for the given taxon ID, they can get data back, but it would be wrong. That is, all taxonomic data sources available in
taxizeuse their own unique IDs, so a single ID value can be in multiple data sources, even though the ID refers to different taxa in each data source. There is no way we can think of to prevent this from happening, so be cautious. (#465)
gnr_resolve()to by default capitalize first name of a name string passed to the function. GNR is case sensitive, so case matters (#469)
phylomatic_format()are defunct. They were deprecated in recent versions, but are now gone. See the new package
brranchingfor Phylomatic data (#479)
gnr_resolve()has been renamed to
canonicalto better match what it actually does (#451)
gnr_resolve()now returns a single data.frame in output, or
NULLwhen no data found. The input taxa that have no match at all are returned in an attribute with name
...to pass in curl options to the request.
...to pass in curl options to the request. In addition, better http error handling, and added a test suite for this function. (#458)
stringsAsFactors=FALSEnow used for
get_uid()to make more clear how to use the varoious parameters to get the desired result, and how to avoid certain pitfalls (#436)
asdffrom the function
eol_dataobjects()- now returning data.frame's only.
tryCatch()to fail better when names not found.
opensslas a package dependency. Not needed anymore because uBio dropped.
gnr_resolve()failed when no canonical form was found.
gnr_resolve()when no results found when
itisdf()to give back an empty data.frame when no results found, often with subspecific taxa. Helps solve errors reported in use of
gnr_resolve()gains new parameter
with_canonical_ranks(logical) to choose whether infraspecific ranks are returned or not.
iucn_id()to get the IUCN ID for a taxon from it's name. (#431)
ubio_ping(). In addition, ubio has been removed as an option in the
synonyms()function, and references for uBio have been removed from the
taxize_cite()utility function. (#449)
rankagg()doesn't depend on
data.tableanymore (fixes issue with CRAN checks)
openssl::base64_decode(), needed for
importFrom) used across all imports now (#446). In addition,
importFromfor all non-base R pkgs, including
GET(), but can pass
gni_*()functions, including code tidying, some DRYing out, and ability to pass in curl options (#444)
classification()where numeric IDs as input got converted to itis ids just because they were numeric. Fixed now. (#434)
synonymsfunction to get name synonyms. (#430)
responseto get a terse or full response, and
...to pass in curl options.
...to pass in curl options, and parameter
asdf(for "as data.frame").
...to pass in curl options.
children()function gains the
rowsparameter passed on to
get_*()functions, supported for data sources ITIS and Catalogue of Life, but not for NCBI.
upstream()function gains the
rowsparameter passed on to
get_*()functions, supported for both data sources ITIS and Catalogue of Life.
classification()function gains the
rowsparameter passed on to
get_*()functions, for all sources used in the function.
downstream()function gains the
rowsparameter passed on to
get_*()functions, for all sources used in the function.
get_*()) gain new parameters to help filter results (e.g.,
rank, etc.). These parameters allow direct matching or regex filters (e.g.,
.ato match any character followed by an
a). (#410) (#385)
get_*()) now give back more information (mostly higher taxonomic data) to help in the interactive decision process. (#327)
synonyms()function: Catalogue of Life. (#430)
veganpackage, used in
class2tree()function, moved from Imports to Suggests. (#392)
taxize_cite()a lot - get URLs and sometimes citation information for data sources available in taxize. (#270)
FALSEby default. (#425)
tnrsis often quite slow.
gisd_isinvasive(). These functions are available in the
phylomatic_tree()is deprecated, but will be defunct in a upcoming version.
itis_ping()pings ITIS and returns a logical, indicating if the ITIS API is working or not. You can also do a very basic test to see whether content returned matches what's expected. (#394)
status_codes()to get vector of HTTP status codes. (#394)
itis_ping(), and all
genbank2uid()to get a NCBI taxonomic id (i.e., a uid) from a either a GenBank accession number of GI number. (#375)
get_nbnid()to get a UK National Biodiversity Network taxonomic id (i.e., a nbnid). (#332)
nbn_classification()to get a taxonomic classification for a UK National Biodiversity Network taxonomic id. Using this new function, generic method
classification()gains method for
nbn_synonyms()to get taxonomic synonyms for a UK National Biodiversity Network taxonomic id. Using this new function, generic method
synonyms()gains method for
nbn_search()to search for taxa in the UK National Biodiversity Network. (#332)
ncbi_children()to get direct taxonomic children for a NCBI taxonomic id. Using this new function, generic method
children()gains method for
ncbi. (#348) (#351) (#354)
upstream()to get taxa upstream of a taxon. E.g., getting families upstream from a genus gets all families within the one level higher up taxonomic class than family. (#343)
as.*()to coerce numeric/alphanumeric codes to taxonomic identifiers for various databases. There are methods on this function for each of itis, ncbi, tropicos, gbif, nbn, bold, col, eol, and ubio. By default
as.*()funtions make a quick check that the identifier is a real one by making a GET request against the identifier URI - this can be toggle off by setting
check=FALSE. There are methods for returning itself, character, numeric, list, and data.frame. In addition, if the
as.*.data.frame()function is used, a generic method exists to coerce the
data.frameback to a identifier object. (#362)
get_tsn_()(the underscore is the only different from the previous function name). These functions don't do the normal interactive process of prompts that e.g.,
get_tsn()do, but instead returned a list of all ids, or a subset via the
ncbi_get_taxon_summary()to get taxonomic name and rank for 1 or more NCBI uid's. (#348)
assertthatremoved from package imports, replaced with
stopifnot(), to reduce dependency load. (#387)
eol_hierarchy()now defunct (no longer available) (#228) (#381)
tp_classifcation()now defunct (no longer available) (#228) (#381)
col_classification()now defunct (no longer available) (#228) (#381)
get_*()functions gain a new parameter
rowsto allow selection of particular rows. For example,
rows=1to select the first row, or
rows=1:3to select rows 1 through 3. (#347)
classification()now by default returns taxonomic identifiers for each of the names. This can be toggled off by the
return_id=FALSE. (#359) (#360)
dbparameter, which helps give better error message when a
dbvalue is not possible or spelled incorrectly. (#379)
children(), which is a single interface to various data sources to get immediate children from a given taxonomic name. (#304)
bold_search()that searches for taxa in the BOLD database of barcode data;
get_boldid()to search for a BOLD taxon identifier. (#301)
get_ubioid()to get a uBio taxon identifier. (#318)
get_ids()gains new option to search for a uBio ID, in addition to the others, itis, ncbi, eol, col, tropicos, and gbif.
iplant_resolve()now outputs data.frame structure instead of a list. (#306)
synonyms()gains new data source, can now get synonyms from uBio data source (#319)
vascan_search()giving back more useful results now.
tnrs()function, including more meaningful error messages on failures (#323) (#331)
getpublicationsfromtsn()that caused function to fail on data.frame's with no data on name assignment (#297)
sci2comm()that caused fxn to fail when using
scrapenames(). Sending a text blob via the
textparameter now works.
resolve()so that function now works for all 3 data sources. (#337)
iplant_resolve()to do name resolution using the iPlant name resolution service. Note, this is different from http://taxosaurus.org/ that is wrapped in the
ipni_search()to search for names in the International Plant Names Index (IPNI).
resolve()that unifies name resolution services from iPlant's name resolution service (via
iplant_resolve()), Taxosaurus' TNRS (via
tnrs()), and GNR's name resolution service (via
get_*()functions how returning a new uri attribute that is a link to the taxon on on the web. If NA is given back (e.g. nothing found), the uri attribute is blank. You can go directly to the uri in your default browser by doing, for example:
get_eolid()now returns an attribute provider because EOL collates taxonomic data form a lot of sources, then gives back IDs that are internal EOL ids, not those matching the id of the source they pull from. This should help with provenance, and should help if there is confusion about why the id givenb back by this function does not match that from the original source.
get_tsn()function, now using the function
itis_terms(), which gives back the accepted status of the taxa. This allows a new parameter in the function (
accepted, logical) that allows user to say give back only accepted status names (
accepted=TRUE), or to give back all names (
gnr_resolve()gains two new parameters
best_match_only(logical, to return best match only) and
preferred_data_sources(to return preferred data sources) and
calloptsto pass in curl options.
tp_synonyms()gain new parameter
calloptsto pass in curl options.
class2tree()can now handle NA in classification objects.
classification.colid()now return the submitted name along with the classification.
plyrfunctions, see #275.
verboseparameter to many more functions to allow suppression of help messages.
httr, now manually parsing JSON to a list then to another data format instead of allowing internal
httrparsing - in addition added checks on content type and encoding in many functions.
dbparameter so that a) unique short abbreviations of possible values are possible, and b) gives a meaningful warning if unsupported values are given.
getgeographicdivisionsfromtsn) gain parameter
curloptsto pass in curl options.
data.framecreations to eliminate factor variables.
classification.gbifid()did not return the correct result when taxon not found.
classification()used to fail when it was passed a subset of a vector of ids, in which case the class information was stripped off. Now works (#284)