R: Get the EOL ID from Encyclopedia of Life from taxonomic...

get_eolid {taxize} | R Documentation

## Get the EOL ID from Encyclopedia of Life from taxonomic names.

### Description

Note that EOL doesn't expose an API endpoint for directly querying for EOL taxon ID's, so we first use the function `eol_search` to find pages that deal with the species of interest, then use `eol_pages` to find the actual taxon IDs.

### Usage

    get_eolid(sciname, ask = TRUE, verbose = TRUE, key = NULL, rows = NA,
      ...)

    as.eolid(x, check = TRUE)

    ## S3 method for class 'eolid'
    as.eolid(x, check = TRUE)

    ## S3 method for class 'character'
    as.eolid(x, check = TRUE)

    ## S3 method for class 'list'
    as.eolid(x, check = TRUE)

    ## S3 method for class 'numeric'
    as.eolid(x, check = TRUE)

    ## S3 method for class 'data.frame'
    as.eolid(x, check = TRUE)

    ## S3 method for class 'eolid'
    as.data.frame(x, ...)

    get_eolid_(sciname, verbose = TRUE, key = NULL, rows = NA, ...)

### Arguments

`sciname` | character; scientific name.
`ask` | logical; should get_eolid be run in interactive mode? If TRUE and more than one ID is found for the species, the user is asked for input. If FALSE NA is returned for multiple matches.
`verbose` | logical; If `TRUE` the actual taxon queried is printed on the console.
`key` | API key. passed on to `eol_search` and `eol_pages` internally
`rows` | numeric; Any number from 1 to infinity. If the default NA, all rows are considered. Note that this function still only gives back a eolid class object with one to many identifiers. See `get_eolid_` to get back all, or a subset, of the raw data that you are presented during the ask process.
`...` | Further args passed on to `eol_search`
`x` | Input to `as.eolid`
`check` | logical; Check if ID matches any existing on the DB, only used in `as.eolid`

### Details

EOL is a bit odd in that they have page IDs for each taxon, but then within that, they have taxon ids for various taxa within that page (e.g., GBIF and NCBI each have a taxon they refer to within the page [i.e., taxon]). And we need the taxon ids from a particular data provider (e.g, NCBI) to do other things, like get a higher classification tree. However, humans want the page id, not the taxon id. So, the id returned from this function is the taxon id, not the page id. You can get the page id for a taxon by using `eol_search` and `eol_pages`, and the URI returned in the attributes for a taxon will lead you to the taxon page, and the ID in the URL is the page id.

### Value

A vector of taxonomic identifiers as an S3 class. If a taxon is not found an `NA` is given. If more than one identifier is found the function asks for user input if `ask = TRUE`, otherwise returns `NA`. If `ask=FALSE` and `rows` does not equal `NA`, then a data.frame is given back, but not of the uid class, which you can't pass on to other functions as you normally can.

See `get_id_details` for further details including attributes and exceptions

### Author(s)

Scott Chamberlain, myrmecocystus@gmail.com

### See Also

`classification`

Other taxonomic-ids: `get_boldid`, `get_colid`, `get_gbifid`, `get_ids`, `get_iucn`, `get_natservid`, `get_nbnid`, `get_tolid`, `get_tpsid`, `get_tsn`, `get_uid`, `get_wiki`, `get_wormsid`

### Examples

    ## Not run:
    get_eolid(sciname='Pinus contorta')
    get_eolid(sciname='Puma concolor')

    get_eolid(c("Puma concolor", "Pinus contorta"))

    # specify rows to limit choices available
    get_eolid('Poa annua')
    get_eolid('Poa annua', rows=1)
    get_eolid('Poa annua', rows=2)
    get_eolid('Poa annua', rows=1:2)

    # When not found
    get_eolid(sciname="uaudnadndj")
    get_eolid(c("Chironomus riparius", "uaudnadndj"))

    # Convert a eolid without class information to a eolid class
    # already a eolid, returns the same
    as.eolid(get_eolid("Chironomus riparius"))
    # same
    as.eolid(get_eolid(c("Chironomus riparius","Pinus contorta")))
    # numeric
    as.eolid(24954444)
    # numeric vector, length > 1
    as.eolid(c(24954444,51389511,57266265))
    # character
    as.eolid("24954444")
    # character vector, length > 1
    as.eolid(c("24954444","51389511","57266265"))
    # list, either numeric or character
    as.eolid(list("24954444","51389511","57266265"))
    ## dont check, much faster
    as.eolid("24954444", check=FALSE)
    as.eolid(24954444, check=FALSE)
    as.eolid(c("24954444","51389511","57266265"), check=FALSE)
    as.eolid(list("24954444","51389511","57266265"), check=FALSE)

    (out <- as.eolid(c(24954444,51389511,57266265)))
    data.frame(out)
    as.eolid( data.frame(out) )

    # Get all data back
    get_eolid_("Poa annua")
    get_eolid_("Poa annua", rows=2)
    get_eolid_("Poa annua", rows=1:2)
    get_eolid_(c("asdfadfasd", "Pinus contorta"))

    ## End(Not run)

[Package taxize version 0.9.0 Index]