[med-svn] [r-cran-worrms] 01/06: New upstream version 0.2.0

Andreas Tille tille at debian.org
Mon Oct 2 11:16:54 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository r-cran-worrms.

commit a619ae25c67168b8108093408edccd453927ee85
Author: Andreas Tille <tille at debian.org>
Date:   Mon Oct 2 12:58:29 2017 +0200

    New upstream version 0.2.0
---
 DESCRIPTION                                 |  13 +-
 MD5                                         | 111 +++---
 NAMESPACE                                   |  12 +
 NEWS.md                                     |  18 +
 R/wm_children.R                             |  28 +-
 R/wm_classification.R                       |  25 +-
 R/wm_common_id.R                            |  22 +-
 R/wm_distribution.R                         |  21 +-
 R/wm_externalid.R                           |  22 +-
 R/wm_id2name.R                              |  18 +-
 R/wm_name2id.R                              |  17 +-
 R/wm_record.R                               |  19 +-
 R/wm_record_by_external.R                   |  20 +-
 R/wm_records_common.R                       |  20 +-
 R/wm_records_date.R                         |   6 +-
 R/wm_records_name.R                         |  12 +-
 R/wm_records_names.R                        |  10 +-
 R/wm_records_taxamatch.R                    |   5 +-
 R/wm_sources.R                              |  21 +-
 R/wm_synonyms.R                             |  20 +-
 R/worrms-package.R                          |   4 +-
 R/zzz.R                                     |  40 ++
 README.md                                   |  40 +-
 build/vignette.rds                          | Bin 227 -> 224 bytes
 inst/doc/worrms_vignette.R                  |  55 ---
 inst/doc/worrms_vignette.Rmd                | 204 ++++++++--
 inst/doc/worrms_vignette.html               | 570 ++++++++++++++--------------
 man/wm_children.Rd                          |  37 +-
 man/wm_classification.Rd                    |  36 +-
 man/wm_common_id.Rd                         |  33 +-
 man/wm_distribution.Rd                      |  32 +-
 man/wm_external.Rd                          |  33 +-
 man/wm_id2name.Rd                           |  28 +-
 man/wm_name2id.Rd                           |  28 +-
 man/wm_record.Rd                            |  30 +-
 man/wm_record_by_external.Rd                |  31 +-
 man/wm_records_common.Rd                    |  29 +-
 man/wm_records_date.Rd                      |   6 +-
 man/wm_records_name.Rd                      |  12 +-
 man/wm_records_names.Rd                     |  10 +-
 man/wm_records_taxamatch.Rd                 |   8 +-
 man/wm_sources.Rd                           |  32 +-
 man/wm_synonyms.Rd                          |  31 +-
 man/worrms-package.Rd                       |   4 +-
 tests/testthat/test-wm_children.R           |  40 ++
 tests/testthat/test-wm_classification.R     |  26 ++
 tests/testthat/test-wm_common_id.R          |  29 ++
 tests/testthat/test-wm_distribution.R       |  26 ++
 tests/testthat/test-wm_external.R           |  27 ++
 tests/testthat/test-wm_id2name.R            |  27 ++
 tests/testthat/test-wm_name2id.R            |  25 ++
 tests/testthat/test-wm_record.R             |  28 ++
 tests/testthat/test-wm_record_by_external.R |  25 ++
 tests/testthat/test-wm_records_common.R     |  25 ++
 tests/testthat/test-wm_sources.R            |  21 +
 tests/testthat/test-wm_synonyms.R           |  22 ++
 vignettes/worrms_vignette.Rmd               | 204 ++++++++--
 57 files changed, 1719 insertions(+), 579 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 6b65d0b..9e4a4b0 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -7,7 +7,7 @@ Description: Client for World Register of Marine Species
     common names, searching using external identifiers, fetching
     synonyms, as well as fetching taxonomic children and 
     taxonomic classification.
-Version: 0.1.0
+Version: 0.2.0
 Authors at R: c(person("Scott", "Chamberlain", role = c("aut", "cre"),
     email = "myrmecocystus at gmail.com"))
 License: MIT + file LICENSE
@@ -15,12 +15,13 @@ URL: https://github.com/ropensci/worrms
 BugReports: https://github.com/ropensci/worrms/issues
 LazyData: true
 VignetteBuilder: knitr
-Imports: crul (>= 0.2.0), tibble (>= 1.2), jsonlite (>= 1.1)
-Suggests: roxygen2 (>= 5.0.1), knitr, rmarkdown, testthat, covr
-RoxygenNote: 5.0.1
+Imports: crul (>= 0.3.6), tibble (>= 1.2), jsonlite (>= 1.1),
+        data.table
+Suggests: roxygen2 (>= 6.0.1), knitr, testthat
+RoxygenNote: 6.0.1
 NeedsCompilation: no
-Packaged: 2017-01-13 20:56:33 UTC; sacmac
+Packaged: 2017-08-24 21:29:00 UTC; sacmac
 Author: Scott Chamberlain [aut, cre]
 Maintainer: Scott Chamberlain <myrmecocystus at gmail.com>
 Repository: CRAN
-Date/Publication: 2017-01-14 12:46:41
+Date/Publication: 2017-08-24 21:50:15 UTC
diff --git a/MD5 b/MD5
index 84c69d8..9dc416c 100644
--- a/MD5
+++ b/MD5
@@ -1,62 +1,61 @@
-1fde29c1a5ba1b8f2abb9236c7cad728 *DESCRIPTION
+ec9d9626166c258495a36beb0abe034f *DESCRIPTION
 c5af52351472a750055a760a8924ce71 *LICENSE
-04cb8893de98cda8e2cf583029e25ca1 *NAMESPACE
-308d70e83a52437c58d2f0584ec0d055 *NEWS.md
-51cf7e89988d42e51a3da0454bf9e9bf *R/wm_children.R
-95be36d4a55ab3c719ed60ec46ee32eb *R/wm_classification.R
-5d42c6522ed5036684d28ebcc7d9dcc4 *R/wm_common_id.R
-6bb0a487189c106475a06cdf8d66c8fd *R/wm_distribution.R
-c13856cecc37519f5875e8b01f1e73cf *R/wm_externalid.R
-5fd8b370f92a476692271ae42d260bea *R/wm_id2name.R
-8a2d7b027d3197e8735c725fd1b09f5a *R/wm_name2id.R
-74420c3b84b1f32ca2734a8bd5052243 *R/wm_record.R
-453bc36ca20b6730b448efdb3935d07e *R/wm_record_by_external.R
-8170f3b89452f9d71731c0f19a6f4de1 *R/wm_records_common.R
-3599f42776cfdfdd25daf35a98b31703 *R/wm_records_date.R
-169ef5d8ccf5fcbcfea7ed3fe20e7828 *R/wm_records_name.R
-a6b2b826938c48934217e4b41990f80b *R/wm_records_names.R
-ef5634251cc7ded071d7d3bdf222213b *R/wm_records_taxamatch.R
-8b63bcb470d7830e76b38d6c82b451ac *R/wm_sources.R
-416a873f50b65053c1243c1b576a5692 *R/wm_synonyms.R
-305c77f60b73c1f59b7c37a8388410bd *R/worrms-package.R
-ca90085045ee6724292a67578903d2bb *R/zzz.R
-3a2002f17f1d857bfe243e890f55ab32 *README.md
-0d359f84d51353adf05eb4df9d6abb65 *build/vignette.rds
-874c3a48333db0b77d5db720b3c6c435 *inst/doc/worrms_vignette.R
-318ed891f3a8b6a130ea07f0a51eec7b *inst/doc/worrms_vignette.Rmd
-1ace7432185d2c9dcff64e5cf1894ce5 *inst/doc/worrms_vignette.html
-3c287959c038ef93335565292ea6dbb1 *man/wm_children.Rd
-c46affa245148b3578d89d458d848297 *man/wm_classification.Rd
-51a732e2a1ef339fa30e8510780bc78b *man/wm_common_id.Rd
-83d8e5e990fa10eb4b41999ff80de203 *man/wm_distribution.Rd
-4f34ed9b99b85c3d80ab9f0c2beeddfc *man/wm_external.Rd
-21bedcde1bf41f9ed2894eb6279ca91a *man/wm_id2name.Rd
-cf9782cb2b9c4c78093a5b394abc7260 *man/wm_name2id.Rd
-45d40ccddbc3e162ef2c789faef70313 *man/wm_record.Rd
-bc4e56a918c35a005460e7c9bfcb5159 *man/wm_record_by_external.Rd
-a7759bd5564ec2fe7217d94854cfecdc *man/wm_records_common.Rd
-094d6e59c574e35032f3548f46c292a8 *man/wm_records_date.Rd
-8576a477ca3e6cb214ab130755a37569 *man/wm_records_name.Rd
-8606a516eab50196ffb2e68e9c4c436b *man/wm_records_names.Rd
-7bc0516d37d76bebc6a391bad0885ec5 *man/wm_records_taxamatch.Rd
-0ce9123e823dacb86cdd0232b36c0c99 *man/wm_sources.Rd
-873fef0b6560d61a1114b811527b87d4 *man/wm_synonyms.Rd
-394917f77183e80c6e7ae0d2455a1874 *man/worrms-package.Rd
+b6b7456caa197a93e535e34de82a4af2 *NAMESPACE
+90f223b65cff5924fec01b1d95dd9882 *NEWS.md
+59c949d3b9564ee6ce9558396c828982 *R/wm_children.R
+2e9a31a9642417b5530ac30c579e56e9 *R/wm_classification.R
+f39821f4ff0424b276b53566912678d5 *R/wm_common_id.R
+7700a9da2fcdd3bc76060c3de3eaa67a *R/wm_distribution.R
+00c13effca08cdefbc1c03d337710b5f *R/wm_externalid.R
+d10cc2f4a6f847822ceb63da179796ed *R/wm_id2name.R
+cee3c01e1966c316d1943efd44cf105b *R/wm_name2id.R
+254147524406295ac0960c6332a06e72 *R/wm_record.R
+a5c9b9f861af6b28fdb65ea17ef5aa44 *R/wm_record_by_external.R
+e15977879a9340e502c39cd5c08a0048 *R/wm_records_common.R
+b909237e8e085479a6c9b568f6a724b2 *R/wm_records_date.R
+919efdb7a7d07158900bafc6784ac5af *R/wm_records_name.R
+1feae9804c69e4b4d1f89be1270113cb *R/wm_records_names.R
+c033490ecb141f04e3298aff6ad2732f *R/wm_records_taxamatch.R
+0708d9f54fd1f512b75384a3d2e89823 *R/wm_sources.R
+09e3585255f51ced9dc37946c9c8a78b *R/wm_synonyms.R
+83ed3219fe18d32688329a3f08525ae3 *R/worrms-package.R
+8fdecd9093b8b17e342b06c829d9e62d *R/zzz.R
+c7eb502fe23d53a9ecdb416ba0274069 *README.md
+23c4dce42c6f7cf19afe133df05daacc *build/vignette.rds
+9b16404f84e0fb5001d67d8227027cfb *inst/doc/worrms_vignette.Rmd
+ac729492fda9b5d15b25b3647b9ac80a *inst/doc/worrms_vignette.html
+e3bfcd5817bf2999e3369dddc391cebe *man/wm_children.Rd
+d6ebf6dcbbcb7cdc96158d10cded9007 *man/wm_classification.Rd
+5e2781052138ac986a4b066f636e86ca *man/wm_common_id.Rd
+0e63182190043db3b4cf10f81a2a63e8 *man/wm_distribution.Rd
+c1d9dda918754a5aeca36bfbfaf7613e *man/wm_external.Rd
+f0db9af6b321298e883e1f029b3e6965 *man/wm_id2name.Rd
+129bf8c37cc547013a92438744eb2a67 *man/wm_name2id.Rd
+c6077db2becdfec44df2128f52ed72eb *man/wm_record.Rd
+14c1fc7664ad2d63d072bf794fc461a5 *man/wm_record_by_external.Rd
+473c7c92abc5fb159291ff0cb5b27972 *man/wm_records_common.Rd
+ef2697c9e55812e6d2569c1ac871052e *man/wm_records_date.Rd
+cfab8f04044b53830295875f101a3e93 *man/wm_records_name.Rd
+b976bb9b7284420778cff4577e0e7468 *man/wm_records_names.Rd
+e7412f06f2199f39bdfe628264faa674 *man/wm_records_taxamatch.Rd
+ec7b7c16366e2188c27bebbc63a0f743 *man/wm_sources.Rd
+7cdbe8e989b13c30eed766be8bc8a49d *man/wm_synonyms.Rd
+e35439a3e8932454af1c1c560096397f *man/worrms-package.Rd
 8c7030aa348e0a2b9cb58ff224192b05 *tests/test-all.R
-e7f63445dfae8ab1e99fae6a1dabe469 *tests/testthat/test-wm_children.R
-78dec117cc8ea1c374e182e828506f59 *tests/testthat/test-wm_classification.R
-d9849a499a932e0b5f3eccaec9ffa165 *tests/testthat/test-wm_common_id.R
-9c8c3babdb233166ee0d48a1be23eb43 *tests/testthat/test-wm_distribution.R
-d5c245384ed89d2ebcb6eade6349334a *tests/testthat/test-wm_external.R
-6cd7473b74fbf51bd97e33a1801febc6 *tests/testthat/test-wm_id2name.R
-64afb3ada77c223bb4131791a98a200c *tests/testthat/test-wm_name2id.R
-73980964694ebd4a28505af11d13c262 *tests/testthat/test-wm_record.R
-08bdf61c059b7974280d8243d1e895ab *tests/testthat/test-wm_record_by_external.R
-863bd7a5772d23f1e8a784a727edb6d6 *tests/testthat/test-wm_records_common.R
+4d7285c17688a8af9404017541094773 *tests/testthat/test-wm_children.R
+35d7caffac2ec08bb14176f824a01391 *tests/testthat/test-wm_classification.R
+a1fa3dbe76b7303772750881222b5e7c *tests/testthat/test-wm_common_id.R
+60b0a3e07cf0d6f40cf744b374fd6705 *tests/testthat/test-wm_distribution.R
+f95185edd01923af137f52429ee8e1c8 *tests/testthat/test-wm_external.R
+fe5c2359d542ddb8528e0bbf3dc68c8d *tests/testthat/test-wm_id2name.R
+4706f7ee48270ba0998cdfb06f51b072 *tests/testthat/test-wm_name2id.R
+09295c57cd8404d7fa5276d933fdf58c *tests/testthat/test-wm_record.R
+0773b37369da885d40a25530c80ab315 *tests/testthat/test-wm_record_by_external.R
+e2de4e70b45b7d67317c667cd2eff358 *tests/testthat/test-wm_records_common.R
 940457feed462710141f16834ed768fe *tests/testthat/test-wm_records_date.R
 77d27c7b71d6c6e37ddc3214cf6472a8 *tests/testthat/test-wm_records_name.R
 a4b3f48df5bdeaa7de22e49b57660787 *tests/testthat/test-wm_records_names.R
 86f804037d073d3dda9d28cede013496 *tests/testthat/test-wm_records_taxamatch.R
-d2f53f5e76a8527ee6e82a1a7f87d329 *tests/testthat/test-wm_sources.R
-b699cb573f3788fc98a1746112a798a0 *tests/testthat/test-wm_synonyms.R
-318ed891f3a8b6a130ea07f0a51eec7b *vignettes/worrms_vignette.Rmd
+0fa12fa5cabf50ff6e937871e1a906cf *tests/testthat/test-wm_sources.R
+9e4ff284596e70c530186cafcd1eacfa *tests/testthat/test-wm_synonyms.R
+9b16404f84e0fb5001d67d8227027cfb *vignettes/worrms_vignette.Rmd
diff --git a/NAMESPACE b/NAMESPACE
index 8aa2a34..8313828 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -1,18 +1,30 @@
 # Generated by roxygen2: do not edit by hand
 
 export(wm_children)
+export(wm_children_)
 export(wm_classification)
+export(wm_classification_)
 export(wm_common_id)
+export(wm_common_id_)
 export(wm_distribution)
+export(wm_distribution_)
 export(wm_external)
+export(wm_external_)
 export(wm_id2name)
+export(wm_id2name_)
 export(wm_name2id)
+export(wm_name2id_)
 export(wm_record)
+export(wm_record_)
 export(wm_record_by_external)
+export(wm_record_by_external_)
 export(wm_records_common)
+export(wm_records_common_)
 export(wm_records_date)
 export(wm_records_name)
 export(wm_records_names)
 export(wm_records_taxamatch)
 export(wm_sources)
+export(wm_sources_)
 export(wm_synonyms)
+export(wm_synonyms_)
diff --git a/NEWS.md b/NEWS.md
index ed5a563..3b1efb5 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,21 @@
+worrms 0.2.0
+============
+
+### NEW FEATURES
+
+* Added additional sister functions to most exported functions in the 
+package, all with trailing underscore. For example, `wm_children` and 
+`wm_children_`. These underscore methods take in many inputs, typically
+of a AphiaID or a taxonomic or vernacular name. We decided to make 
+separate functions so that we minimize any disturbance to the existing 
+package API. (#4) (#6)
+
+## MINOR IMPROVEMENTS
+
+* Moved to using markdown docs (#5)
+* All functions now state what they return (#9)
+
+
 worrms 0.1.0
 ============
 
diff --git a/R/wm_children.R b/R/wm_children.R
index b3d8e9e..fe24083 100644
--- a/R/wm_children.R
+++ b/R/wm_children.R
@@ -1,14 +1,28 @@
 #' Get children for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
-#' @param marine_only (logical) marine only or not. default: \code{TRUE}
+#' @param id (numeric/integer) an AphiaID. For `wm_children` it's
+#' required and must be `length(id) = 1`, for `wm_children_` it's
+#' optional and can be `length(id) >= 1`
+#' @param marine_only (logical) marine only or not. default: `TRUE`
 #' @param offset (integer) record to start at. default: 1
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_children(id = 105706)
 #' wm_children(id = 105706, FALSE)
 #' wm_children(id = 105706, offset = 5)
+#'
+#' wm_children(254966)
+#' wm_children(343613)
+#'
+#' # plural version, via id or name
+#' wm_children_(id = c(254966, 343613))
+#' wm_children_(name = c('Platanista', 'Leucophaeus'))
+#' }
 wm_children <- function(id, marine_only = TRUE, offset = 1, ...) {
   assert(id, c("numeric", "integer"))
   assert(marine_only, "logical")
@@ -17,3 +31,11 @@ wm_children <- function(id, marine_only = TRUE, offset = 1, ...) {
          query = cc(list(marine_only = as_log(marine_only),
                          offset = offset)), ...)
 }
+
+#' @export
+#' @rdname wm_children
+wm_children_ <- function(id = NULL, name = NULL, marine_only = TRUE,
+                         offset = 1, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_children, marine_only = marine_only, offset = offset, ...)
+}
diff --git a/R/wm_classification.R b/R/wm_classification.R
index 1b53125..297fe15 100644
--- a/R/wm_classification.R
+++ b/R/wm_classification.R
@@ -1,11 +1,25 @@
 #' Get classification for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_children` it's
+#' required and must be `length(id) = 1`, for `wm_children_` it's
+#' optional and can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_classification(id = 105706)
 #' wm_classification(id = 126436)
+#'
+#' wm_classification(254967)
+#' wm_classification(344089)
+#'
+#' # plural version, via id or name
+#' wm_classification_(id = c(254967, 344089))
+#' wm_classification_(name = c('Platanista gangetica', 'Leucophaeus scoresbii'))
+#' }
 wm_classification <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   res <- wm_GET(file.path(wm_base(), "AphiaClassificationByAphiaID", id), ...)
@@ -29,3 +43,10 @@ wm_classification <- function(id, ...) {
   if (NROW(dat) == 0) dat <- NULL
   tibble::as_tibble(dat)
 }
+
+#' @export
+#' @rdname wm_classification
+wm_classification_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_classification, ...)
+}
diff --git a/R/wm_common_id.R b/R/wm_common_id.R
index e85e749..d0983a9 100644
--- a/R/wm_common_id.R
+++ b/R/wm_common_id.R
@@ -1,14 +1,32 @@
 #' Get vernacular names from an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_common_id` it's
+#' required and must be `length(id) = 1`, for `wm_common_id_` it's
+#' optional and can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_common_id(id = 105706)
 #' wm_common_id(id = 156806)
 #' wm_common_id(id = 397065)
+#'
+#' wm_common_id_(id = c(105706, 156806, 397065))
+#' nms <- c("Rhincodontidae", "Mesodesma deauratum", "Cryptomya californica")
+#' wm_common_id_(name = nms)
+#' }
 wm_common_id <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   if (length(id) > 1) stop("'id' must be of length 1", call. = FALSE)
   wm_GET(file.path(wm_base(), "AphiaVernacularsByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_common_id
+wm_common_id_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_common_id, ...)
+}
diff --git a/R/wm_distribution.R b/R/wm_distribution.R
index 70fd224..027fd64 100644
--- a/R/wm_distribution.R
+++ b/R/wm_distribution.R
@@ -1,11 +1,28 @@
 #' Get distribution data by AphiaID
 #'
 #' @export
-#' @param id an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_distribution` it's
+#' required and must be `length(id) = 1`, for `wm_distribution_` it's
+#' optional and can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_distribution(id = 156806)
+#' wm_distribution(id = 126436)
+#'
+#' wm_distribution_(id = c(156806, 126436))
+#' }
 wm_distribution <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   wm_GET(file.path(wm_base(), "AphiaDistributionsByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_distribution
+wm_distribution_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_distribution, ...)
+}
diff --git a/R/wm_externalid.R b/R/wm_externalid.R
index e3086bb..31ab132 100644
--- a/R/wm_externalid.R
+++ b/R/wm_externalid.R
@@ -1,14 +1,23 @@
 #' Get an external ID via an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_external` it's
+#' required and must be `length(id) = 1`, for `wm_external_` it's
+#' optional and can be `length(id) >= 1`
 #' @param type (character) the type of external id. one of: tsn, bold,
 #' dyntaxa, eol, fishbase, iucn, lsid, ncbi, gisd. default: tsn
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return An integer that is the ID. When using underscore method,
+#' a list, named by the input IDs
+#' @examples \dontrun{
 #' # by default, get a TSN (an ITIS code)
 #' wm_external(id = 1080)
 #'
+#' ## get many
+#' wm_external_(id = c(1080, 126436))
+#'
 #' # BOLD code
 #' wm_external(id = 278468, type = "bold")
 #'
@@ -18,8 +27,10 @@
 #' # fishbase code
 #' wm_external(id = 278468, type = "fishbase")
 #'
+#' # curl options
 #' library(crul)
 #' wm_external(id = 105706, verbose = TRUE)
+#' }
 wm_external <- function(id, type = "tsn", ...) {
   assert(id, c("numeric", "integer"))
   assert(type, "character")
@@ -27,3 +38,10 @@ wm_external <- function(id, type = "tsn", ...) {
     file.path(wm_base(), "AphiaExternalIDByAphiaID", id),
     query = cc(list(type = type)), ...))
 }
+
+#' @export
+#' @rdname wm_external
+wm_external_ <- function(id = NULL, name = NULL, type = "tsn", ...) {
+  id <- id_name(id, name)
+  run_c(id, wm_external, type = type, ...)
+}
diff --git a/R/wm_id2name.R b/R/wm_id2name.R
index 865ea5e..73012aa 100644
--- a/R/wm_id2name.R
+++ b/R/wm_id2name.R
@@ -1,11 +1,25 @@
 #' Get taxonomic name for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID, required. For `wm_id2name`
+#' must be `length(id) = 1`, but for `wm_id2name_` can be
+#' `length(id) >= 1`
 #' @template curl
-#' @examples
+#' @template plural
+#' @return An character string that is the taxnomic name. When using underscore
+#' method, a list, named by the input IDs
+#' @examples \dontrun{
 #' wm_id2name(id = 105706)
+#' wm_id2name_(id = c(105706, 126436))
+#' }
 wm_id2name <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   wm_GET(file.path(wm_base(), "AphiaNameByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_id2name
+wm_id2name_ <- function(id, ...) {
+  id <- id_name(id, NULL)
+  run_c(id, wm_id2name, ...)
+}
diff --git a/R/wm_name2id.R b/R/wm_name2id.R
index e058e20..536ee23 100644
--- a/R/wm_name2id.R
+++ b/R/wm_name2id.R
@@ -1,11 +1,24 @@
 #' Get AphiaID from a taxonomic name
 #'
 #' @export
-#' @param name (character) a taxon name
+#' @param name (character) a taxonomic name, required. For
+#' `wm_name2id` must be `length(id) = 1`, but for `wm_name2id_`
+#' can be `length(id) >= 1`
 #' @template curl
-#' @examples
+#' @template plural
+#' @return An integer that is the AphiaID. When using underscore method,
+#' a list, named by the input names
+#' @examples \dontrun{
 #' wm_name2id(name = "Rhincodon")
+#' wm_name2id_(name = c("Rhincodon", "Gadus morhua"))
+#' }
 wm_name2id <- function(name, ...) {
   assert(name, "character")
   wm_GET(file.path(wm_base(), "AphiaIDByName", name), ...)
 }
+
+#' @export
+#' @rdname wm_name2id
+wm_name2id_ <- function(name, ...) {
+  run_c(name, wm_name2id, ...)
+}
diff --git a/R/wm_record.R b/R/wm_record.R
index 6edb4fc..657276f 100644
--- a/R/wm_record.R
+++ b/R/wm_record.R
@@ -1,11 +1,26 @@
 #' Get complete AphiaRecord for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_record` it's
+#' required and must be `length(id) = 1`, for `wm_record_` it's
+#' optional and can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A named list. When using underscore method, each output is named
+#' by the input ID, and can be separated by the list names
+#' @examples \dontrun{
 #' wm_record(id = 105706)
+#' wm_record_(id = c(105706, 126436))
+#' }
 wm_record <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   wm_GET(file.path(wm_base(), "AphiaRecordByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_record
+wm_record_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_c(id, wm_record, ...)
+}
diff --git a/R/wm_record_by_external.R b/R/wm_record_by_external.R
index dc09a40..fd110f5 100644
--- a/R/wm_record_by_external.R
+++ b/R/wm_record_by_external.R
@@ -1,16 +1,32 @@
 #' Get record by external ID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_record_by_external`
+#' it's required and must be `length(id) = 1`, for
+#' `wm_record_by_external_` it's optional and can be `length(id) >= 1`
 #' @param type (character) the type of external id. one of: tsn, bold,
 #' dyntaxa, eol, fishbase, iucn, lsid, ncbi, gisd. default: tsn
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A named list. When using underscore method, each output is named
+#' by the input ID, and can be separated by the list names
+#' @examples \dontrun{
 #' wm_record_by_external(id = 85257)
 #' wm_record_by_external(id = 159854)
+#'
+#' wm_record_by_external_(id = c(85257, 159854))
+#' }
 wm_record_by_external <- function(id, type = "tsn", ...) {
   assert(id, c("numeric", "integer"))
   assert(type, "character")
   wm_GET(file.path(wm_base(), "AphiaRecordByExternalID", id),
          query = cc(list(type = type)), ...)
 }
+
+#' @export
+#' @rdname wm_record_by_external
+wm_record_by_external_ <- function(id = NULL, name = NULL, type = "tsn", ...) {
+  id <- id_name(id, name)
+  run_c(id, wm_record_by_external, type = type, ...)
+}
diff --git a/R/wm_records_common.R b/R/wm_records_common.R
index b821f62..2905841 100644
--- a/R/wm_records_common.R
+++ b/R/wm_records_common.R
@@ -1,15 +1,21 @@
 #' Get records by vernacular name, optional fuzzy matching
 #'
 #' @export
-#' @param name (character) a species common name. required.
-#' @param fuzzy (logical) fuzzy search. default: \code{FALSE}
+#' @param name (character) a species common name. required. For
+#' `wm_records_common` must be `length(id) = 1`; for `wm_records_common_`
+#' can be `length(id) >= 1`
+#' @param fuzzy (logical) fuzzy search. default: `FALSE`
 #' @param offset (integer) record to start at. default: 1
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_records_common(name = 'dolphin')
 #' wm_records_common(name = 'clam')
 #'
-#' \dontrun{
+#' wm_records_common_(name = c('dolphin', 'clam'))
+#'
 #' wm_records_common(name = 'dolphin', fuzzy = TRUE)
 #' wm_records_common(name = 'clam', fuzzy = TRUE, offset = 5)
 #' }
@@ -27,3 +33,9 @@ wm_records_common <- function(name, fuzzy = FALSE, offset = 1,
   wm_GET(file.path(wm_base(), "AphiaRecordsByVernacular", name),
          query = args, ...)
 }
+
+#' @export
+#' @rdname wm_records_common
+wm_records_common_ <- function(name, fuzzy = FALSE, offset = 1, ...) {
+  run_bind(name, wm_records_common, fuzzy = fuzzy, offset = offset, ...)
+}
diff --git a/R/wm_records_date.R b/R/wm_records_date.R
index 3e6dab4..d3eb8e4 100644
--- a/R/wm_records_date.R
+++ b/R/wm_records_date.R
@@ -3,12 +3,14 @@
 #' @export
 #' @param start_date (character) start date. required.
 #' @param end_date (character) end date. optional
-#' @param marine_only (logical) marine only or not. default: \code{TRUE}
+#' @param marine_only (logical) marine only or not. default: `TRUE`
 #' @param offset (integer) record to start at. default: 1
 #' @template curl
-#' @examples
+#' @return A tibble/data.frame
+#' @examples \dontrun{
 #' a_date <- format(Sys.Date() - 1, "%Y-%m-%dT%H:%M:%S+00:00")
 #' wm_records_date(a_date)
+#' }
 wm_records_date <- function(start_date, end_date = NULL, marine_only = TRUE,
                             offset = 1, ...) {
   assert(start_date, c("character", "Date"))
diff --git a/R/wm_records_name.R b/R/wm_records_name.R
index c97b106..7e3d193 100644
--- a/R/wm_records_name.R
+++ b/R/wm_records_name.R
@@ -1,17 +1,21 @@
 #' Get records by single name, optional fuzzy matching
 #'
 #' @export
-#' @param name (character) start date. required.
-#' @param fuzzy (logical) fuzzy search. default: \code{TRUE}
-#' @param marine_only (logical) marine only or not. default: \code{TRUE}
+#' @param name (character) a taxonomic name, required.
+#' @param fuzzy (logical) fuzzy search. default: `TRUE`
+#' @param marine_only (logical) marine only or not. default: `TRUE`
 #' @param offset (integer) record to start at. default: 1
 #' @template curl
-#' @examples
+#' @note there is no underscore method like other functions in this package
+#' as there is already a plural version: [wm_records_names()]
+#' @return A tibble/data.frame
+#' @examples \dontrun{
 #' wm_records_name(name = 'Platanista gangetica')
 #' wm_records_name(name = 'Platanista gangetica', fuzzy = FALSE)
 #' wm_records_name(name = 'Platanista gangetica', marine_only = FALSE)
 #' wm_records_name(name = 'Platanista', marine_only = FALSE)
 #' wm_records_name(name = 'Platanista', marine_only = FALSE, offset = 5)
+#' }
 wm_records_name <- function(name, fuzzy = TRUE, marine_only = TRUE, offset = 1,
                             ...) {
   assert(name, "character")
diff --git a/R/wm_records_names.R b/R/wm_records_names.R
index 58f2bf6..6f7edcc 100644
--- a/R/wm_records_names.R
+++ b/R/wm_records_names.R
@@ -2,13 +2,17 @@
 #'
 #' @export
 #' @param name (character) start date. required.
-#' @param fuzzy (logical) fuzzy search. default: \code{FALSE}
-#' @param marine_only (logical) marine only or not. default: \code{TRUE}
+#' @param fuzzy (logical) fuzzy search. default: `FALSE`
+#' @param marine_only (logical) marine only or not. default: `TRUE`
 #' @template curl
-#' @examples
+#' @note there is no underscore method like other functions in this package
+#' as this is the plural version for [wm_records_name()]
+#' @return A list of tibble's/data.frame's, one for each of the input names
+#' @examples \dontrun{
 #' wm_records_names(name = 'Platanista gangetica')
 #' wm_records_names(name = 'Platanista gangetica', fuzzy = TRUE)
 #' wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
+#' }
 wm_records_names <- function(name, fuzzy = FALSE, marine_only = TRUE, ...) {
   assert(name, "character")
   assert(fuzzy, "logical")
diff --git a/R/wm_records_taxamatch.R b/R/wm_records_taxamatch.R
index e33ab1e..6594014 100644
--- a/R/wm_records_taxamatch.R
+++ b/R/wm_records_taxamatch.R
@@ -3,8 +3,11 @@
 #'
 #' @export
 #' @param name (character) taxon name. required.
-#' @param marine_only (logical) marine only or not. default: \code{TRUE}
+#' @param marine_only (logical) marine only or not. default: `TRUE`
 #' @template curl
+#' @note there is no underscore method like other functions in this package
+#' as this function already accepts many names
+#' @return A list of tibble's/data.frame's, one for each of the input names
 #' @examples \dontrun{
 #' wm_records_taxamatch(name = 'Platanista gangetica')
 #' wm_records_taxamatch(name = c('Platanista gangetica', 'Coryphaena'))
diff --git a/R/wm_sources.R b/R/wm_sources.R
index bae4e8d..ec1ac98 100644
--- a/R/wm_sources.R
+++ b/R/wm_sources.R
@@ -1,11 +1,28 @@
 #' Get sources for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_sources` it's required
+#' and must be `length(id) = 1`, for `wm_sources_` it's optional and
+#' can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_sources(id = 105706)
+#' wm_sources_(id = 105706)
+#' wm_sources_(id = c(105706, 126436))
+#' wm_sources_(name = c("Rhincodontidae", "Gadus morhua"))
+#' }
 wm_sources <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   wm_GET(file.path(wm_base(), "AphiaSourcesByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_sources
+wm_sources_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_sources, ...)
+}
diff --git a/R/wm_synonyms.R b/R/wm_synonyms.R
index 52ee84b..17a70fa 100644
--- a/R/wm_synonyms.R
+++ b/R/wm_synonyms.R
@@ -1,11 +1,27 @@
 #' Get synonyms for an AphiaID
 #'
 #' @export
-#' @param id (numeric/integer) an AphiaID. required.
+#' @param id (numeric/integer) an AphiaID. For `wm_synonyms` it's required
+#' and must be `length(id) = 1`, for `wm_synonyms_` it's optional and
+#' can be `length(id) >= 1`
+#' @param name (character) one or more taxonomic names. optional
 #' @template curl
-#' @examples
+#' @template plural
+#' @return A tibble/data.frame. when using underscore method, outputs from
+#' each input are binded together, but can be split by `id` column
+#' @examples \dontrun{
 #' wm_synonyms(id = 105706)
+#' wm_synonyms_(id = 105706)
+#' wm_synonyms_(id = c(105706, 126436))
+#' }
 wm_synonyms <- function(id, ...) {
   assert(id, c("numeric", "integer"))
   wm_GET(file.path(wm_base(), "AphiaSynonymsByAphiaID", id), ...)
 }
+
+#' @export
+#' @rdname wm_synonyms
+wm_synonyms_ <- function(id = NULL, name = NULL, ...) {
+  id <- id_name(id, name)
+  run_bind(id, wm_synonyms, ...)
+}
diff --git a/R/worrms-package.R b/R/worrms-package.R
index bba7bd4..953ec61 100644
--- a/R/worrms-package.R
+++ b/R/worrms-package.R
@@ -8,8 +8,8 @@
 #'
 #' @section Fail behavior:
 #' The WoRMS REST API doesn't have sophisticated error messaging, so
-#' most errors will result in a \code{(204) - No Content} or
-#' in \code{(400) - Bad Request}
+#' most errors will result in a `(204) - No Content` or
+#' in `(400) - Bad Request`
 #'
 #' Because WoRMS doesn't do comprehensive error reporting, we do a fair
 #' amount of checking user inputs to help prevent errors that will be
diff --git a/R/zzz.R b/R/zzz.R
index 3433bef..cc2acea 100644
--- a/R/zzz.R
+++ b/R/zzz.R
@@ -23,6 +23,12 @@ wm_base <- function() "http://www.marinespecies.org/rest"
 
 cc <- function(x) Filter(Negate(is.null), x)
 
+ccn <- function(x) {
+  Filter(function(z) !is.null(z) && NROW(z) > 0, x)
+}
+
+`%||%` <- function(x, y) if (is.null(x) || length(x) == 0) y else x
+
 as_log <- function(x) {
   if (is.null(x)) {
     x
@@ -39,3 +45,37 @@ assert <- function(x, y) {
     }
   }
 }
+
+br <- function(x) {
+  (x <- data.table::setDF(
+    data.table::rbindlist(x, use.names = TRUE, fill = TRUE, idcol = "id")))
+}
+
+run_c <- function(id, fun, ...) {
+  ccn(stats::setNames(lapply(id, fun, ...), id))
+}
+
+run_bind <- function(id, fun, ...) {
+  tibble::as_tibble(br(ccn(
+    stats::setNames(lapply(id, fun, ...), id)
+  )))
+}
+
+id_name <- function(id, name) {
+  if (!xor(is.null(id), is.null(name))) stop("use only one of 'id' or 'name'")
+  if (!is.null(name)) {
+    unlist(lapply(name, safe_wm_name2id), FALSE)
+  } else {
+    id
+  }
+}
+
+safe_wm_name2id <- function(x, ...) {
+  res <- tryCatch(wm_name2id(x, ...), error = function(e) e)
+  if (inherits(res, "error")) {
+    warning(sprintf("%s: %s", x, res$message))
+    return(NULL)
+  } else {
+    return(res)
+  }
+}
diff --git a/README.md b/README.md
index 5536917..9b44c00 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,8 @@ worrms
 
 [![Build Status](https://travis-ci.org/ropensci/worrms.svg?branch=master)](https://travis-ci.org/ropensci/worrms)
 [![codecov](https://codecov.io/gh/ropensci/worrms/branch/master/graph/badge.svg)](https://codecov.io/gh/ropensci/worrms)
+[![rstudio mirror downloads](http://cranlogs.r-pkg.org/badges/worrms)](https://github.com/metacran/cranlogs.app)
+[![cran version](http://www.r-pkg.org/badges/version/worrms)](https://cran.r-project.org/package=worrms)
 
 `worrms` is a R client for the World Register of Marine Species
 
@@ -41,19 +43,19 @@ by date
 
 ```r
 wm_records_date('2016-12-23T05:59:45+00:00')
-#> # A tibble: 50 × 25
+#> # A tibble: 50 x 25
 #>    AphiaID                                                           url
-#> *    <int>                                                         <chr>
-#> 1   894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
-#> 2   894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
-#> 3   894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
-#> 4   894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
-#> 5   894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
-#> 6   894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
-#> 7   894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
-#> 8   906769 http://www.marinespecies.org/aphia.php?p=taxdetails&id=906769
-#> 9   909454 http://www.marinespecies.org/aphia.php?p=taxdetails&id=909454
-#> 10  915236 http://www.marinespecies.org/aphia.php?p=taxdetails&id=915236
+#>  *   <int>                                                         <chr>
+#>  1  894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
+#>  2  894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
+#>  3  894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
+#>  4  894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
+#>  5  894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
+#>  6  894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
+#>  7  894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
+#>  8  915236 http://www.marinespecies.org/aphia.php?p=taxdetails&id=915236
+#>  9  897486 http://www.marinespecies.org/aphia.php?p=taxdetails&id=897486
+#> 10  901957 http://www.marinespecies.org/aphia.php?p=taxdetails&id=901957
 #> # ... with 40 more rows, and 23 more variables: scientificname <chr>,
 #> #   authority <chr>, status <chr>, unacceptreason <lgl>, rank <chr>,
 #> #   valid_AphiaID <int>, valid_name <chr>, valid_authority <chr>,
@@ -68,7 +70,7 @@ by a taxonomic name
 
 ```r
 wm_records_name(name = 'Platanista gangetica')
-#> # A tibble: 3 × 25
+#> # A tibble: 3 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -88,7 +90,7 @@ by many names
 ```r
 wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
 #> [[1]]
-#> # A tibble: 1 × 25
+#> # A tibble: 1 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -98,9 +100,9 @@ wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
 #> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
 #> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
 #> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
-#> 
+#>
 #> [[2]]
-#> # A tibble: 2 × 25
+#> # A tibble: 2 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  125960 http://www.marinespecies.org/aphia.php?p=taxdetails&id=125960
@@ -118,7 +120,7 @@ by common name
 
 ```r
 wm_records_common(name = 'clam')
-#> # A tibble: 2 × 25
+#> # A tibble: 2 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  141919 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141919
@@ -137,7 +139,7 @@ using the TAXMATCH algorithm
 ```r
 wm_records_taxamatch(name = 'Platanista gangetica')
 #> [[1]]
-#> # A tibble: 1 × 25
+#> # A tibble: 1 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -157,5 +159,3 @@ wm_records_taxamatch(name = 'Platanista gangetica')
 * Get citation information for `worrms` in R doing `citation(package = 'worrms')`
 * Please note that this project is released with a [Contributor Code of Conduct](CONDUCT.md).
 By participating in this project you agree to abide by its terms.
-
-[![ropensci_footer](https://ropensci.org/public_images/github_footer.png)](https://ropensci.org)
diff --git a/build/vignette.rds b/build/vignette.rds
index e405151..8a276bd 100644
Binary files a/build/vignette.rds and b/build/vignette.rds differ
diff --git a/inst/doc/worrms_vignette.R b/inst/doc/worrms_vignette.R
deleted file mode 100644
index 2369401..0000000
--- a/inst/doc/worrms_vignette.R
+++ /dev/null
@@ -1,55 +0,0 @@
-## ----echo=FALSE----------------------------------------------------------
-knitr::opts_chunk$set(
-  comment = "#>",
-  collapse = TRUE,
-  warning = FALSE,
-  message = FALSE
-)
-
-## ----eval=FALSE----------------------------------------------------------
-#  install.packages("worrms")
-
-## ----eval=FALSE----------------------------------------------------------
-#  install.packages("devtools")
-#  devtools::install_github("ropensci/worrms")
-
-## ------------------------------------------------------------------------
-library("worrms")
-
-## ------------------------------------------------------------------------
-wm_records_date('2016-12-23T05:59:45+00:00')
-
-## ------------------------------------------------------------------------
-wm_records_name(name = 'Platanista gangetica')
-
-## ------------------------------------------------------------------------
-wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
-
-## ------------------------------------------------------------------------
-wm_records_common(name = 'clam')
-
-## ------------------------------------------------------------------------
-wm_records_taxamatch(name = 'Platanista gangetica')
-
-## ------------------------------------------------------------------------
-wm_name2id(name = "Rhincodon")
-
-## ------------------------------------------------------------------------
-wm_id2name(id = 105706)
-
-## ------------------------------------------------------------------------
-wm_external(id = 1080)
-wm_external(id = 105706)
-
-## ------------------------------------------------------------------------
-wm_common_id(id = 156806)
-
-## ------------------------------------------------------------------------
-wm_classification(id = 105706)
-
-## ------------------------------------------------------------------------
-wm_classification(id = 105706)
-
-## ------------------------------------------------------------------------
-wm_synonyms(id = 105706)
-
diff --git a/inst/doc/worrms_vignette.Rmd b/inst/doc/worrms_vignette.Rmd
index da4906f..5dafa5f 100644
--- a/inst/doc/worrms_vignette.Rmd
+++ b/inst/doc/worrms_vignette.Rmd
@@ -1,29 +1,13 @@
----
-title: "Introduction to the worrms package"
-author: "Scott Chamberlain"
-date: "`r Sys.Date()`"
-output: 
-  html_document:
-    toc: true
-    toc_float: true
-    theme: readable
-vignette: >
-  %\VignetteIndexEntry{Introduction to the worrms package}
-  %\VignetteEngine{knitr::rmarkdown}
-  %\VignetteEncoding{UTF-8}
----
-
-```{r echo=FALSE}
-knitr::opts_chunk$set(
-  comment = "#>",
-  collapse = TRUE,
-  warning = FALSE,
-  message = FALSE
-)
-```
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Introduction to the worrms package}
+%\VignetteEncoding{UTF-8}
+-->
+
+
 
-worrms introduction
-===================
+Introduction to the worrms package
+==================================
 
 `worrms` is an R client for the [World Register of Marine Species](http://www.marinespecies.org/).
 
@@ -31,18 +15,21 @@ worrms introduction
 
 Stable version from CRAN
 
-```{r eval=FALSE}
+
+```r
 install.packages("worrms")
 ```
 
 Development version from GitHub
 
-```{r eval=FALSE}
+
+```r
 install.packages("devtools")
 devtools::install_github("ropensci/worrms")
 ```
 
-```{r}
+
+```r
 library("worrms")
 ```
 
@@ -52,78 +39,215 @@ WoRMS 'records' are taxa, not specimen occurrences or something else.
 
 by date
 
-```{r}
+
+```r
 wm_records_date('2016-12-23T05:59:45+00:00')
+#> # A tibble: 50 x 25
+#>    AphiaID                                                           url
+#>  *   <int>                                                         <chr>
+#>  1  894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
+#>  2  894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
+#>  3  894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
+#>  4  894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
+#>  5  894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
+#>  6  894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
+#>  7  894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
+#>  8  915236 http://www.marinespecies.org/aphia.php?p=taxdetails&id=915236
+#>  9  906769 http://www.marinespecies.org/aphia.php?p=taxdetails&id=906769
+#> 10  909454 http://www.marinespecies.org/aphia.php?p=taxdetails&id=909454
+#> # ... with 40 more rows, and 23 more variables: scientificname <chr>,
+#> #   authority <chr>, status <chr>, unacceptreason <lgl>, rank <chr>,
+#> #   valid_AphiaID <int>, valid_name <chr>, valid_authority <chr>,
+#> #   kingdom <chr>, phylum <chr>, class <chr>, order <chr>, family <chr>,
+#> #   genus <chr>, citation <chr>, lsid <chr>, isMarine <int>,
+#> #   isBrackish <lgl>, isFreshwater <lgl>, isTerrestrial <lgl>,
+#> #   isExtinct <int>, match_type <chr>, modified <chr>
 ```
 
 by a taxonomic name
 
-```{r}
+
+```r
 wm_records_name(name = 'Platanista gangetica')
+#> # A tibble: 3 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> 2  383571 http://www.marinespecies.org/aphia.php?p=taxdetails&id=383571
+#> 3  254969 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254969
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <int>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 by many names
 
-```{r}
+
+```r
 wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
+#> [[1]]
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+#> 
+#> [[2]]
+#> # A tibble: 2 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  125960 http://www.marinespecies.org/aphia.php?p=taxdetails&id=125960
+#> 2  843430                                                          <NA>
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <chr>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <int>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 by common name
 
-```{r}
+
+```r
 wm_records_common(name = 'clam')
+#> # A tibble: 2 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  141919 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141919
+#> 2  141936 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141936
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <lgl>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 using the TAXMATCH algorithm
 
-```{r}
+
+```r
 wm_records_taxamatch(name = 'Platanista gangetica')
+#> [[1]]
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 ## APHIA ID <--> name
 
-```{r}
+
+```r
 wm_name2id(name = "Rhincodon")
+#> [1] 105749
 ```
 
-```{r}
+
+```r
 wm_id2name(id = 105706)
+#> [1] "Rhincodontidae"
 ```
 
 ## Get AphiaID via an external ID
 
-```{r}
+
+```r
 wm_external(id = 1080)
+#> [1] 85257
 wm_external(id = 105706)
+#> [1] 159854
 ```
 
 ## Get vernacular names from an AphiaID
 
-```{r}
+
+```r
 wm_common_id(id = 156806)
+#> # A tibble: 2 x 3
+#>            vernacular language_code language
+#> *               <chr>         <chr>    <chr>
+#> 1    gilded wedgeclam           eng  English
+#> 2 Turton's wedge clam           eng  English
 ```
 
 ## Children
 
 Get direct taxonomic children for an AphiaID
 
-```{r}
+
+```r
 wm_classification(id = 105706)
+#> # A tibble: 11 x 3
+#>    AphiaID       rank   scientificname
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
+#> 10   10208      Order Orectolobiformes
+#> 11  105706     Family   Rhincodontidae
 ```
 
 ## Classification
 
 Get classification for an AphiaID
 
-```{r}
+
+```r
 wm_classification(id = 105706)
+#> # A tibble: 11 x 3
+#>    AphiaID       rank   scientificname
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
+#> 10   10208      Order Orectolobiformes
+#> 11  105706     Family   Rhincodontidae
 ```
 
 ## Synonyms
 
 Get synonyms for an AphiaID
 
-```{r}
+
+```r
 wm_synonyms(id = 105706)
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  148832 http://www.marinespecies.org/aphia.php?p=taxdetails&id=148832
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <chr>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <lgl>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <lgl>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
diff --git a/inst/doc/worrms_vignette.html b/inst/doc/worrms_vignette.html
index 5e1360f..0e743f5 100644
--- a/inst/doc/worrms_vignette.html
+++ b/inst/doc/worrms_vignette.html
@@ -1,267 +1,265 @@
 <!DOCTYPE html>
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
+<html>
 <head>
-
-<meta charset="utf-8">
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="pandoc" />
-
-
-<meta name="author" content="Scott Chamberlain" />
-
-<meta name="date" content="2017-01-13" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 
 <title>Introduction to the worrms package</title>
 
-<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dG [...]
-<meta name="viewport" content="width=device-width, initial-scale=1" />
-<link href="data:text/css;charset=utf-8,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Raleway%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAARAQAABAAQR1BPUxtH%2B3EAANmkAAAfHEdTVULdHN8hAAD4wAAAAHRPUy8yithpFAAAoKQAAABgY21hcB3C%2FugAAKEEAAACTGN2dCAMEAMqAACrAAAAADBmcGdtQXn%2FlwAAo1AAAAdJZ2FzcAAAABAAANmcAAAACGdseWaq%2Fo41AAABHAAAmeBoZWFk%2B5BgOAAAnNgAAAA2aGhlYQcyA6MAAKCAAAAAJGhtdHjExydIAACdEAAAA3BrZXJu [...]
-<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdy [...]
-<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLm [...]
-<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG [...]
-<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE2LTAxLTA1CiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgZHJhZ2dhYmxlLmpzLCBkcm9wcGFibGUuanMsIHJlc2l6YWJsZS5qcywgc2VsZWN0YWJsZS5qcywgc29ydGFibGUuanMsIGFjY29yZGlvbi5qcywgYXV0b2NvbXBsZXRlLmpzLCBidXR0b24uanMsIGRpYWxvZy5qcywgbWVudS5qcywgcHJvZ3Jlc3NiYXIuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc3Bpbm5lci5qcywgdGFicy5qcywgdG9vbHRpcC5qcywgZWZmZWN0LmpzLC [...]
-<link href="data:text/css;charset=utf-8,%0A%0A%2Etocify%20%7B%0Awidth%3A%2020%25%3B%0Amax%2Dheight%3A%2090%25%3B%0Aoverflow%3A%20auto%3B%0Amargin%2Dleft%3A%202%25%3B%0Aposition%3A%20fixed%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Awebkit%2Dborder%2Dradius%3A%206px%3B%0Amoz%2Dborder%2Dradius%3A%206px%3B%0Aborder%2Dradius%3A%206px%3B%0A%7D%0A%0A%2Etocify%20ul%2C%20%2Etocify%20li%20%7B%0Alist%2Dstyle%3A%20none%3B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%20none%3B%0Aline%2Dheight%3 [...]
-<script src="data:application/x-javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdG [...]
-<script src="data:application/x-javascript;base64,Cgp3aW5kb3cuYnVpbGRUYWJzZXRzID0gZnVuY3Rpb24odG9jSUQpIHsKCiAgLy8gYnVpbGQgYSB0YWJzZXQgZnJvbSBhIHNlY3Rpb24gZGl2IHdpdGggdGhlIC50YWJzZXQgY2xhc3MKICBmdW5jdGlvbiBidWlsZFRhYnNldCh0YWJzZXQpIHsKCiAgICAvLyBjaGVjayBmb3IgZmFkZSBhbmQgcGlsbHMgb3B0aW9ucwogICAgdmFyIGZhZGUgPSB0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1mYWRlIik7CiAgICB2YXIgcGlsbHMgPSB0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1waWxscyIpOwogICAgdmFyIG5hdkNsYXNzID0gcGlsbHMgPyAibmF2LXBpbGxzIiA6ICJuYXYtdGFicyI7CgogIC [...]
-<link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estri [...]
-<script src="data:application/x-javascript;base64,dmFyIGhsanM9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLzwvZ20sIiZsdDsiKX1mdW5jdGlvbiBmKHIscSxwKXtyZXR1cm4gUmVnRXhwKHEsIm0iKyhyLmNJPyJpIjoiIikrKHA/ImciOiIiKSl9ZnVuY3Rpb24gYihyKXtmb3IodmFyIHA9MDtwPHIuY2hpbGROb2Rlcy5sZW5ndGg7cCsrKXt2YXIgcT1yLmNoaWxkTm9kZXNbcF07aWYocS5ub2RlTmFtZT09IkNPREUiKXtyZXR1cm4gcX1pZighKHEubm9kZVR5cGU9PTMmJnEubm9kZVZhbHVlLm1hdGNoKC9ccysvKSkpe2JyZWFrfX19ZnVuY3Rpb24gaCh0LH [...]
-
-<style type="text/css">code{white-space: pre;}</style>
-<style type="text/css">
-  pre:not([class]) {
-    background-color: white;
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
   }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
 </style>
+
+<!-- R syntax highlighter -->
 <script type="text/javascript">
-if (window.hljs && document.readyState && document.readyState === "complete") {
-   window.setTimeout(function() {
-      hljs.initHighlighting();
-   }, 0);
-}
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&").replace(/</gm,"<")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.chi [...]
+hljs.initHighlightingOnLoad();
 </script>
 
 
 
 <style type="text/css">
-h1 {
-  font-size: 34px;
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
 }
-h1.title {
-  font-size: 38px;
+
+h1 {
+   font-size:2.2em;
 }
+
 h2 {
-  font-size: 30px;
+   font-size:1.8em;
 }
+
 h3 {
-  font-size: 24px;
+   font-size:1.4em;
 }
+
 h4 {
-  font-size: 18px;
+   font-size:1.0em;
 }
+
 h5 {
-  font-size: 16px;
+   font-size:0.9em;
 }
+
 h6 {
-  font-size: 12px;
-}
-.table th:not([align]) {
-  text-align: left;
+   font-size:0.8em;
 }
-</style>
-
-
-</head>
-
-<body>
 
-<style type="text/css">
-.main-container {
-  max-width: 940px;
-  margin-left: auto;
-  margin-right: auto;
-}
-code {
-  color: inherit;
-  background-color: rgba(0, 0, 0, 0.04);
-}
-img {
-  max-width:100%;
-  height: auto;
-}
-.tabbed-pane {
-  padding-top: 12px;
+a:visited {
+   color: rgb(50%, 0%, 50%);
 }
-button.code-folding-btn:focus {
-  outline: none;
-}
-</style>
-
-
-
-<div class="container-fluid main-container">
-
-<!-- tabsets -->
-<script>
-$(document).ready(function () {
-  window.buildTabsets("TOC");
-});
-</script>
 
-<!-- code folding -->
-
-
-
-
-<script>
-$(document).ready(function ()  {
-
-    // move toc-ignore selectors from section div to header
-    $('div.section.toc-ignore')
-        .removeClass('toc-ignore')
-        .children('h1,h2,h3,h4,h5').addClass('toc-ignore');
-
-    // establish options
-    var options = {
-      selectors: "h1,h2,h3",
-      theme: "bootstrap3",
-      context: '.toc-content',
-      hashGenerator: function (text) {
-        return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_').toLowerCase();
-      },
-      ignoreSelector: ".toc-ignore",
-      scrollTo: 0
-    };
-    options.showAndHide = true;
-    options.smoothScroll = true;
-
-    // tocify
-    var toc = $("#TOC").tocify(options).data("toc-tocify");
-});
-</script>
-
-<style type="text/css">
-
-#TOC {
-  margin: 25px 0px 20px 0px;
+pre, img {
+  max-width: 100%;
 }
- at media (max-width: 768px) {
-#TOC {
-  position: relative;
-  width: 100%;
+pre {
+  overflow-x: auto;
 }
+pre code {
+   display: block; padding: 0.5em;
 }
 
-
-.toc-content {
-  padding-left: 30px;
-  padding-right: 40px;
-}
-
-div.main-container {
-  max-width: 1200px;
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
 }
 
-div.tocify {
-  width: 20%;
-  max-width: 260px;
-  max-height: 85%;
+code[class] {
+  background-color: #F8F8F8;
 }
 
- at media (min-width: 768px) and (max-width: 991px) {
-  div.tocify {
-    width: 25%;
-  }
+table, td, th {
+  border: none;
 }
 
- at media (max-width: 767px) {
-  div.tocify {
-    width: 100%;
-    max-width: none;
-  }
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
 }
 
-.tocify ul, .tocify li {
-  line-height: 20px;
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
 }
 
-.tocify-subheader .tocify-item {
-  font-size: 0.90em;
-  padding-left: 25px;
-  text-indent: 0;
+ at media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
 }
+</style>
 
-.tocify .list-group-item {
-  border-radius: 0px;
-}
 
 
-</style>
+</head>
 
-<!-- setup 3col/9col grid for toc_float and main content  -->
-<div class="row-fluid">
-<div class="col-xs-12 col-sm-4 col-md-3">
-<div id="TOC" class="tocify">
-</div>
-</div>
+<body>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Introduction to the worrms package}
+%\VignetteEncoding{UTF-8}
+-->
 
-<div class="toc-content col-xs-12 col-sm-8 col-md-9">
+<h1>Introduction to the worrms package</h1>
 
+<p><code>worrms</code> is an R client for the <a href="http://www.marinespecies.org/">World Register of Marine Species</a>.</p>
 
+<h2>Install</h2>
 
+<p>Stable version from CRAN</p>
 
-<div class="fluid-row" id="header">
+<pre><code class="r">install.packages("worrms")
+</code></pre>
 
+<p>Development version from GitHub</p>
 
+<pre><code class="r">install.packages("devtools")
+devtools::install_github("ropensci/worrms")
+</code></pre>
 
-<h1 class="title toc-ignore">Introduction to the worrms package</h1>
-<h4 class="author"><em>Scott Chamberlain</em></h4>
-<h4 class="date"><em>2017-01-13</em></h4>
+<pre><code class="r">library("worrms")
+</code></pre>
 
-</div>
+<h2>Get records</h2>
 
+<p>WoRMS 'records' are taxa, not specimen occurrences or something else.</p>
 
-<div id="worrms-introduction" class="section level1">
-<h1>worrms introduction</h1>
-<p><code>worrms</code> is an R client for the <a href="http://www.marinespecies.org/">World Register of Marine Species</a>.</p>
-<div id="install" class="section level2">
-<h2>Install</h2>
-<p>Stable version from CRAN</p>
-<pre class="r"><code>install.packages("worrms")</code></pre>
-<p>Development version from GitHub</p>
-<pre class="r"><code>install.packages("devtools")
-devtools::install_github("ropensci/worrms")</code></pre>
-<pre class="r"><code>library("worrms")</code></pre>
-</div>
-<div id="get-records" class="section level2">
-<h2>Get records</h2>
-<p>WoRMS ‘records’ are taxa, not specimen occurrences or something else.</p>
 <p>by date</p>
-<pre class="r"><code>wm_records_date('2016-12-23T05:59:45+00:00')
-#> # A tibble: 50 × 25
+
+<pre><code class="r">wm_records_date('2016-12-23T05:59:45+00:00')
+#> # A tibble: 50 x 25
 #>    AphiaID                                                           url
-#> *    <int>                                                         <chr>
-#> 1   894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
-#> 2   894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
-#> 3   894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
-#> 4   894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
-#> 5   894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
-#> 6   894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
-#> 7   894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
-#> 8   897486 http://www.marinespecies.org/aphia.php?p=taxdetails&id=897486
-#> 9   901957 http://www.marinespecies.org/aphia.php?p=taxdetails&id=901957
-#> 10  899919 http://www.marinespecies.org/aphia.php?p=taxdetails&id=899919
+#>  *   <int>                                                         <chr>
+#>  1  894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
+#>  2  894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
+#>  3  894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
+#>  4  894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
+#>  5  894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
+#>  6  894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
+#>  7  894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
+#>  8  915236 http://www.marinespecies.org/aphia.php?p=taxdetails&id=915236
+#>  9  906769 http://www.marinespecies.org/aphia.php?p=taxdetails&id=906769
+#> 10  909454 http://www.marinespecies.org/aphia.php?p=taxdetails&id=909454
 #> # ... with 40 more rows, and 23 more variables: scientificname <chr>,
 #> #   authority <chr>, status <chr>, unacceptreason <lgl>, rank <chr>,
 #> #   valid_AphiaID <int>, valid_name <chr>, valid_authority <chr>,
 #> #   kingdom <chr>, phylum <chr>, class <chr>, order <chr>, family <chr>,
 #> #   genus <chr>, citation <chr>, lsid <chr>, isMarine <int>,
 #> #   isBrackish <lgl>, isFreshwater <lgl>, isTerrestrial <lgl>,
-#> #   isExtinct <int>, match_type <chr>, modified <chr></code></pre>
+#> #   isExtinct <int>, match_type <chr>, modified <chr>
+</code></pre>
+
 <p>by a taxonomic name</p>
-<pre class="r"><code>wm_records_name(name = 'Platanista gangetica')
-#> # A tibble: 3 × 25
+
+<pre><code class="r">wm_records_name(name = 'Platanista gangetica')
+#> # A tibble: 3 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -272,11 +270,14 @@ devtools::install_github("ropensci/worrms")</code></pre>
 #> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
 #> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
 #> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <int>,
-#> #   isTerrestrial <int>, isExtinct <lgl>, match_type <chr>, modified <chr></code></pre>
+#> #   isTerrestrial <int>, isExtinct <lgl>, match_type <chr>, modified <chr>
+</code></pre>
+
 <p>by many names</p>
-<pre class="r"><code>wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
+
+<pre><code class="r">wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
 #> [[1]]
-#> # A tibble: 1 × 25
+#> # A tibble: 1 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -288,7 +289,7 @@ devtools::install_github("ropensci/worrms")</code></pre>
 #> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 #> 
 #> [[2]]
-#> # A tibble: 2 × 25
+#> # A tibble: 2 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  125960 http://www.marinespecies.org/aphia.php?p=taxdetails&id=125960
@@ -298,10 +299,13 @@ devtools::install_github("ropensci/worrms")</code></pre>
 #> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
 #> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
 #> #   lsid <chr>, isMarine <int>, isBrackish <int>, isFreshwater <int>,
-#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr></code></pre>
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+</code></pre>
+
 <p>by common name</p>
-<pre class="r"><code>wm_records_common(name = 'clam')
-#> # A tibble: 2 × 25
+
+<pre><code class="r">wm_records_common(name = 'clam')
+#> # A tibble: 2 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  141919 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141919
@@ -311,11 +315,14 @@ devtools::install_github("ropensci/worrms")</code></pre>
 #> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
 #> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
 #> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <lgl>,
-#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr></code></pre>
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+</code></pre>
+
 <p>using the TAXMATCH algorithm</p>
-<pre class="r"><code>wm_records_taxamatch(name = 'Platanista gangetica')
+
+<pre><code class="r">wm_records_taxamatch(name = 'Platanista gangetica')
 #> [[1]]
-#> # A tibble: 1 × 25
+#> # A tibble: 1 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
@@ -324,74 +331,85 @@ devtools::install_github("ropensci/worrms")</code></pre>
 #> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
 #> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
 #> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
-#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr></code></pre>
-</div>
-<div id="aphia-id-name" class="section level2">
-<h2>APHIA ID <–> name</h2>
-<pre class="r"><code>wm_name2id(name = "Rhincodon")
-#> [1] 105749</code></pre>
-<pre class="r"><code>wm_id2name(id = 105706)
-#> [1] "Rhincodontidae"</code></pre>
-</div>
-<div id="get-aphiaid-via-an-external-id" class="section level2">
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+</code></pre>
+
+<h2>APHIA ID <–> name</h2>
+
+<pre><code class="r">wm_name2id(name = "Rhincodon")
+#> [1] 105749
+</code></pre>
+
+<pre><code class="r">wm_id2name(id = 105706)
+#> [1] "Rhincodontidae"
+</code></pre>
+
 <h2>Get AphiaID via an external ID</h2>
-<pre class="r"><code>wm_external(id = 1080)
+
+<pre><code class="r">wm_external(id = 1080)
 #> [1] 85257
 wm_external(id = 105706)
-#> [1] 159854</code></pre>
-</div>
-<div id="get-vernacular-names-from-an-aphiaid" class="section level2">
+#> [1] 159854
+</code></pre>
+
 <h2>Get vernacular names from an AphiaID</h2>
-<pre class="r"><code>wm_common_id(id = 156806)
-#> # A tibble: 2 × 3
+
+<pre><code class="r">wm_common_id(id = 156806)
+#> # A tibble: 2 x 3
 #>            vernacular language_code language
 #> *               <chr>         <chr>    <chr>
 #> 1    gilded wedgeclam           eng  English
-#> 2 Turton's wedge clam           eng  English</code></pre>
-</div>
-<div id="children" class="section level2">
+#> 2 Turton's wedge clam           eng  English
+</code></pre>
+
 <h2>Children</h2>
+
 <p>Get direct taxonomic children for an AphiaID</p>
-<pre class="r"><code>wm_classification(id = 105706)
-#> # A tibble: 11 × 3
+
+<pre><code class="r">wm_classification(id = 105706)
+#> # A tibble: 11 x 3
 #>    AphiaID       rank   scientificname
-#> *    <int>      <chr>            <chr>
-#> 1        2    Kingdom         Animalia
-#> 2     1821     Phylum         Chordata
-#> 3   146419  Subphylum       Vertebrata
-#> 4     1828 Superclass    Gnathostomata
-#> 5    11676 Superclass           Pisces
-#> 6    10193      Class   Elasmobranchii
-#> 7   368407   Subclass      Neoselachii
-#> 8   368408 Infraclass         Selachii
-#> 9   368410 Superorder      Galeomorphi
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
 #> 10   10208      Order Orectolobiformes
-#> 11  105706     Family   Rhincodontidae</code></pre>
-</div>
-<div id="classification" class="section level2">
+#> 11  105706     Family   Rhincodontidae
+</code></pre>
+
 <h2>Classification</h2>
+
 <p>Get classification for an AphiaID</p>
-<pre class="r"><code>wm_classification(id = 105706)
-#> # A tibble: 11 × 3
+
+<pre><code class="r">wm_classification(id = 105706)
+#> # A tibble: 11 x 3
 #>    AphiaID       rank   scientificname
-#> *    <int>      <chr>            <chr>
-#> 1        2    Kingdom         Animalia
-#> 2     1821     Phylum         Chordata
-#> 3   146419  Subphylum       Vertebrata
-#> 4     1828 Superclass    Gnathostomata
-#> 5    11676 Superclass           Pisces
-#> 6    10193      Class   Elasmobranchii
-#> 7   368407   Subclass      Neoselachii
-#> 8   368408 Infraclass         Selachii
-#> 9   368410 Superorder      Galeomorphi
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
 #> 10   10208      Order Orectolobiformes
-#> 11  105706     Family   Rhincodontidae</code></pre>
-</div>
-<div id="synonyms" class="section level2">
+#> 11  105706     Family   Rhincodontidae
+</code></pre>
+
 <h2>Synonyms</h2>
+
 <p>Get synonyms for an AphiaID</p>
-<pre class="r"><code>wm_synonyms(id = 105706)
-#> # A tibble: 1 × 25
+
+<pre><code class="r">wm_synonyms(id = 105706)
+#> # A tibble: 1 x 25
 #>   AphiaID                                                           url
 #> *   <int>                                                         <chr>
 #> 1  148832 http://www.marinespecies.org/aphia.php?p=taxdetails&id=148832
@@ -400,39 +418,9 @@ wm_external(id = 105706)
 #> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
 #> #   class <chr>, order <chr>, family <chr>, genus <lgl>, citation <chr>,
 #> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <lgl>,
-#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr></code></pre>
-</div>
-</div>
-
-
-
-</div>
-</div>
-
-</div>
-
-<script>
-
-// add bootstrap table styles to pandoc tables
-function bootstrapStylePandocTables() {
-  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
-}
-$(document).ready(function () {
-  bootstrapStylePandocTables();
-});
-
-
-</script>
-
-<!-- dynamically load mathjax for compatibility with self-contained -->
-<script>
-  (function () {
-    var script = document.createElement("script");
-    script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
-    document.getElementsByTagName("head")[0].appendChild(script);
-  })();
-</script>
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+</code></pre>
 
 </body>
+
 </html>
diff --git a/man/wm_children.Rd b/man/wm_children.Rd
index 507034e..972cddf 100644
--- a/man/wm_children.Rd
+++ b/man/wm_children.Rd
@@ -2,25 +2,58 @@
 % Please edit documentation in R/wm_children.R
 \name{wm_children}
 \alias{wm_children}
+\alias{wm_children_}
 \title{Get children for an AphiaID}
 \usage{
 wm_children(id, marine_only = TRUE, offset = 1, ...)
+
+wm_children_(id = NULL, name = NULL, marine_only = TRUE, offset = 1,
+  ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_children} it's
+required and must be \code{length(id) = 1}, for \code{wm_children_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{marine_only}{(logical) marine only or not. default: \code{TRUE}}
 
 \item{offset}{(integer) record to start at. default: 1}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get children for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_children(id = 105706)
 wm_children(id = 105706, FALSE)
 wm_children(id = 105706, offset = 5)
-}
 
+wm_children(254966)
+wm_children(343613)
+
+# plural version, via id or name
+wm_children_(id = c(254966, 343613))
+wm_children_(name = c('Platanista', 'Leucophaeus'))
+}
+}
diff --git a/man/wm_classification.Rd b/man/wm_classification.Rd
index 60e6131..fb6bd37 100644
--- a/man/wm_classification.Rd
+++ b/man/wm_classification.Rd
@@ -2,20 +2,52 @@
 % Please edit documentation in R/wm_classification.R
 \name{wm_classification}
 \alias{wm_classification}
+\alias{wm_classification_}
 \title{Get classification for an AphiaID}
 \usage{
 wm_classification(id, ...)
+
+wm_classification_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_children} it's
+required and must be \code{length(id) = 1}, for \code{wm_children_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get classification for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_classification(id = 105706)
 wm_classification(id = 126436)
-}
 
+wm_classification(254967)
+wm_classification(344089)
+
+# plural version, via id or name
+wm_classification_(id = c(254967, 344089))
+wm_classification_(name = c('Platanista gangetica', 'Leucophaeus scoresbii'))
+}
+}
diff --git a/man/wm_common_id.Rd b/man/wm_common_id.Rd
index 6ff3c79..c1cd763 100644
--- a/man/wm_common_id.Rd
+++ b/man/wm_common_id.Rd
@@ -2,21 +2,50 @@
 % Please edit documentation in R/wm_common_id.R
 \name{wm_common_id}
 \alias{wm_common_id}
+\alias{wm_common_id_}
 \title{Get vernacular names from an AphiaID}
 \usage{
 wm_common_id(id, ...)
+
+wm_common_id_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_common_id} it's
+required and must be \code{length(id) = 1}, for \code{wm_common_id_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get vernacular names from an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_common_id(id = 105706)
 wm_common_id(id = 156806)
 wm_common_id(id = 397065)
-}
 
+wm_common_id_(id = c(105706, 156806, 397065))
+nms <- c("Rhincodontidae", "Mesodesma deauratum", "Cryptomya californica")
+wm_common_id_(name = nms)
+}
+}
diff --git a/man/wm_distribution.Rd b/man/wm_distribution.Rd
index 0cb33d8..1ddbb60 100644
--- a/man/wm_distribution.Rd
+++ b/man/wm_distribution.Rd
@@ -2,19 +2,47 @@
 % Please edit documentation in R/wm_distribution.R
 \name{wm_distribution}
 \alias{wm_distribution}
+\alias{wm_distribution_}
 \title{Get distribution data by AphiaID}
 \usage{
 wm_distribution(id, ...)
+
+wm_distribution_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_distribution} it's
+required and must be \code{length(id) = 1}, for \code{wm_distribution_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get distribution data by AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_distribution(id = 156806)
-}
+wm_distribution(id = 126436)
 
+wm_distribution_(id = c(156806, 126436))
+}
+}
diff --git a/man/wm_external.Rd b/man/wm_external.Rd
index f729550..ace19f9 100644
--- a/man/wm_external.Rd
+++ b/man/wm_external.Rd
@@ -2,25 +2,53 @@
 % Please edit documentation in R/wm_externalid.R
 \name{wm_external}
 \alias{wm_external}
+\alias{wm_external_}
 \title{Get an external ID via an AphiaID}
 \usage{
 wm_external(id, type = "tsn", ...)
+
+wm_external_(id = NULL, name = NULL, type = "tsn", ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_external} it's
+required and must be \code{length(id) = 1}, for \code{wm_external_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{type}{(character) the type of external id. one of: tsn, bold,
 dyntaxa, eol, fishbase, iucn, lsid, ncbi, gisd. default: tsn}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+An integer that is the ID. When using underscore method,
+a list, named by the input IDs
 }
 \description{
 Get an external ID via an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 # by default, get a TSN (an ITIS code)
 wm_external(id = 1080)
 
+## get many
+wm_external_(id = c(1080, 126436))
+
 # BOLD code
 wm_external(id = 278468, type = "bold")
 
@@ -30,7 +58,8 @@ wm_external(id = 278468, type = "ncbi")
 # fishbase code
 wm_external(id = 278468, type = "fishbase")
 
+# curl options
 library(crul)
 wm_external(id = 105706, verbose = TRUE)
 }
-
+}
diff --git a/man/wm_id2name.Rd b/man/wm_id2name.Rd
index b4b4832..c4dcd3d 100644
--- a/man/wm_id2name.Rd
+++ b/man/wm_id2name.Rd
@@ -2,19 +2,43 @@
 % Please edit documentation in R/wm_id2name.R
 \name{wm_id2name}
 \alias{wm_id2name}
+\alias{wm_id2name_}
 \title{Get taxonomic name for an AphiaID}
 \usage{
 wm_id2name(id, ...)
+
+wm_id2name_(id, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID, required. For \code{wm_id2name}
+must be \code{length(id) = 1}, but for \code{wm_id2name_} can be
+\code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+An character string that is the taxnomic name. When using underscore
+method, a list, named by the input IDs
+}
 \description{
 Get taxonomic name for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_id2name(id = 105706)
+wm_id2name_(id = c(105706, 126436))
+}
 }
-
diff --git a/man/wm_name2id.Rd b/man/wm_name2id.Rd
index ff6a0c1..447b902 100644
--- a/man/wm_name2id.Rd
+++ b/man/wm_name2id.Rd
@@ -2,19 +2,43 @@
 % Please edit documentation in R/wm_name2id.R
 \name{wm_name2id}
 \alias{wm_name2id}
+\alias{wm_name2id_}
 \title{Get AphiaID from a taxonomic name}
 \usage{
 wm_name2id(name, ...)
+
+wm_name2id_(name, ...)
 }
 \arguments{
-\item{name}{(character) a taxon name}
+\item{name}{(character) a taxonomic name, required. For
+\code{wm_name2id} must be \code{length(id) = 1}, but for \code{wm_name2id_}
+can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+An integer that is the AphiaID. When using underscore method,
+a list, named by the input names
+}
 \description{
 Get AphiaID from a taxonomic name
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_name2id(name = "Rhincodon")
+wm_name2id_(name = c("Rhincodon", "Gadus morhua"))
+}
 }
-
diff --git a/man/wm_record.Rd b/man/wm_record.Rd
index 4e46ac1..7c507b6 100644
--- a/man/wm_record.Rd
+++ b/man/wm_record.Rd
@@ -2,19 +2,45 @@
 % Please edit documentation in R/wm_record.R
 \name{wm_record}
 \alias{wm_record}
+\alias{wm_record_}
 \title{Get complete AphiaRecord for an AphiaID}
 \usage{
 wm_record(id, ...)
+
+wm_record_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_record} it's
+required and must be \code{length(id) = 1}, for \code{wm_record_} it's
+optional and can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A named list. When using underscore method, each output is named
+by the input ID, and can be separated by the list names
 }
 \description{
 Get complete AphiaRecord for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_record(id = 105706)
+wm_record_(id = c(105706, 126436))
+}
 }
-
diff --git a/man/wm_record_by_external.Rd b/man/wm_record_by_external.Rd
index ff82ccb..5420904 100644
--- a/man/wm_record_by_external.Rd
+++ b/man/wm_record_by_external.Rd
@@ -2,23 +2,50 @@
 % Please edit documentation in R/wm_record_by_external.R
 \name{wm_record_by_external}
 \alias{wm_record_by_external}
+\alias{wm_record_by_external_}
 \title{Get record by external ID}
 \usage{
 wm_record_by_external(id, type = "tsn", ...)
+
+wm_record_by_external_(id = NULL, name = NULL, type = "tsn", ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_record_by_external}
+it's required and must be \code{length(id) = 1}, for
+\code{wm_record_by_external_} it's optional and can be \code{length(id) >= 1}}
 
 \item{type}{(character) the type of external id. one of: tsn, bold,
 dyntaxa, eol, fishbase, iucn, lsid, ncbi, gisd. default: tsn}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A named list. When using underscore method, each output is named
+by the input ID, and can be separated by the list names
 }
 \description{
 Get record by external ID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_record_by_external(id = 85257)
 wm_record_by_external(id = 159854)
-}
 
+wm_record_by_external_(id = c(85257, 159854))
+}
+}
diff --git a/man/wm_records_common.Rd b/man/wm_records_common.Rd
index 4a413f4..7d6b1f8 100644
--- a/man/wm_records_common.Rd
+++ b/man/wm_records_common.Rd
@@ -2,12 +2,17 @@
 % Please edit documentation in R/wm_records_common.R
 \name{wm_records_common}
 \alias{wm_records_common}
+\alias{wm_records_common_}
 \title{Get records by vernacular name, optional fuzzy matching}
 \usage{
 wm_records_common(name, fuzzy = FALSE, offset = 1, ...)
+
+wm_records_common_(name, fuzzy = FALSE, offset = 1, ...)
 }
 \arguments{
-\item{name}{(character) a species common name. required.}
+\item{name}{(character) a species common name. required. For
+\code{wm_records_common} must be \code{length(id) = 1}; for \code{wm_records_common_}
+can be \code{length(id) >= 1}}
 
 \item{fuzzy}{(logical) fuzzy search. default: \code{FALSE}}
 
@@ -15,16 +20,34 @@ wm_records_common(name, fuzzy = FALSE, offset = 1, ...)
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
+}
 \description{
 Get records by vernacular name, optional fuzzy matching
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_records_common(name = 'dolphin')
 wm_records_common(name = 'clam')
 
-\dontrun{
+wm_records_common_(name = c('dolphin', 'clam'))
+
 wm_records_common(name = 'dolphin', fuzzy = TRUE)
 wm_records_common(name = 'clam', fuzzy = TRUE, offset = 5)
 }
 }
-
diff --git a/man/wm_records_date.Rd b/man/wm_records_date.Rd
index 8bf12da..0d6f188 100644
--- a/man/wm_records_date.Rd
+++ b/man/wm_records_date.Rd
@@ -18,11 +18,15 @@ wm_records_date(start_date, end_date = NULL, marine_only = TRUE,
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+A tibble/data.frame
+}
 \description{
 Get records by date
 }
 \examples{
+\dontrun{
 a_date <- format(Sys.Date() - 1, "\%Y-\%m-\%dT\%H:\%M:\%S+00:00")
 wm_records_date(a_date)
 }
-
+}
diff --git a/man/wm_records_name.Rd b/man/wm_records_name.Rd
index 15011be..03cfc1b 100644
--- a/man/wm_records_name.Rd
+++ b/man/wm_records_name.Rd
@@ -7,7 +7,7 @@
 wm_records_name(name, fuzzy = TRUE, marine_only = TRUE, offset = 1, ...)
 }
 \arguments{
-\item{name}{(character) start date. required.}
+\item{name}{(character) a taxonomic name, required.}
 
 \item{fuzzy}{(logical) fuzzy search. default: \code{TRUE}}
 
@@ -17,14 +17,22 @@ wm_records_name(name, fuzzy = TRUE, marine_only = TRUE, offset = 1, ...)
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+A tibble/data.frame
+}
 \description{
 Get records by single name, optional fuzzy matching
 }
+\note{
+there is no underscore method like other functions in this package
+as there is already a plural version: \code{\link[=wm_records_names]{wm_records_names()}}
+}
 \examples{
+\dontrun{
 wm_records_name(name = 'Platanista gangetica')
 wm_records_name(name = 'Platanista gangetica', fuzzy = FALSE)
 wm_records_name(name = 'Platanista gangetica', marine_only = FALSE)
 wm_records_name(name = 'Platanista', marine_only = FALSE)
 wm_records_name(name = 'Platanista', marine_only = FALSE, offset = 5)
 }
-
+}
diff --git a/man/wm_records_names.Rd b/man/wm_records_names.Rd
index ea28084..8962b92 100644
--- a/man/wm_records_names.Rd
+++ b/man/wm_records_names.Rd
@@ -15,12 +15,20 @@ wm_records_names(name, fuzzy = FALSE, marine_only = TRUE, ...)
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+A list of tibble's/data.frame's, one for each of the input names
+}
 \description{
 Get records for onen or more taxonomic name(s)
 }
+\note{
+there is no underscore method like other functions in this package
+as this is the plural version for \code{\link[=wm_records_name]{wm_records_name()}}
+}
 \examples{
+\dontrun{
 wm_records_names(name = 'Platanista gangetica')
 wm_records_names(name = 'Platanista gangetica', fuzzy = TRUE)
 wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
 }
-
+}
diff --git a/man/wm_records_taxamatch.Rd b/man/wm_records_taxamatch.Rd
index c46a611..b452bf1 100644
--- a/man/wm_records_taxamatch.Rd
+++ b/man/wm_records_taxamatch.Rd
@@ -14,14 +14,20 @@ wm_records_taxamatch(name, marine_only = TRUE, ...)
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
 }
+\value{
+A list of tibble's/data.frame's, one for each of the input names
+}
 \description{
 Get records for onen or more taxonomic name(s) using
 the TAXAMATCH fuzzy matching algorithm
 }
+\note{
+there is no underscore method like other functions in this package
+as this function already accepts many names
+}
 \examples{
 \dontrun{
 wm_records_taxamatch(name = 'Platanista gangetica')
 wm_records_taxamatch(name = c('Platanista gangetica', 'Coryphaena'))
 }
 }
-
diff --git a/man/wm_sources.Rd b/man/wm_sources.Rd
index 84220a2..c852164 100644
--- a/man/wm_sources.Rd
+++ b/man/wm_sources.Rd
@@ -2,19 +2,47 @@
 % Please edit documentation in R/wm_sources.R
 \name{wm_sources}
 \alias{wm_sources}
+\alias{wm_sources_}
 \title{Get sources for an AphiaID}
 \usage{
 wm_sources(id, ...)
+
+wm_sources_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_sources} it's required
+and must be \code{length(id) = 1}, for \code{wm_sources_} it's optional and
+can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get sources for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_sources(id = 105706)
+wm_sources_(id = 105706)
+wm_sources_(id = c(105706, 126436))
+wm_sources_(name = c("Rhincodontidae", "Gadus morhua"))
+}
 }
-
diff --git a/man/wm_synonyms.Rd b/man/wm_synonyms.Rd
index 416a660..c8c3532 100644
--- a/man/wm_synonyms.Rd
+++ b/man/wm_synonyms.Rd
@@ -2,19 +2,46 @@
 % Please edit documentation in R/wm_synonyms.R
 \name{wm_synonyms}
 \alias{wm_synonyms}
+\alias{wm_synonyms_}
 \title{Get synonyms for an AphiaID}
 \usage{
 wm_synonyms(id, ...)
+
+wm_synonyms_(id = NULL, name = NULL, ...)
 }
 \arguments{
-\item{id}{(numeric/integer) an AphiaID. required.}
+\item{id}{(numeric/integer) an AphiaID. For \code{wm_synonyms} it's required
+and must be \code{length(id) = 1}, for \code{wm_synonyms_} it's optional and
+can be \code{length(id) >= 1}}
 
 \item{...}{named curl options. see \code{\link[curl]{curl_options}}}
+
+\item{name}{(character) one or more taxonomic names. optional}
+}
+\value{
+A tibble/data.frame. when using underscore method, outputs from
+each input are binded together, but can be split by \code{id} column
 }
 \description{
 Get synonyms for an AphiaID
 }
+\section{Singular vs. plural}{
+
+Of the two sister functions, the one without the underscore is the original
+function that wraps the relavant WoRMS API method - and only accepts
+one thing (i.e., name or AphiaID) per request.
+
+The sister function with the underscore at the end is the plural version,
+accepting more than one input. Internally this function loops over
+the non-underscore method, and labels output (whether it's a list or
+data.frame rows) with the input names or IDs so that you can easily
+parse output by your inputs.
+}
+
 \examples{
+\dontrun{
 wm_synonyms(id = 105706)
+wm_synonyms_(id = 105706)
+wm_synonyms_(id = c(105706, 126436))
+}
 }
-
diff --git a/man/worrms-package.Rd b/man/worrms-package.Rd
index 0d0db61..36aa6a6 100644
--- a/man/worrms-package.Rd
+++ b/man/worrms-package.Rd
@@ -2,8 +2,8 @@
 % Please edit documentation in R/worrms-package.R
 \docType{package}
 \name{worrms-package}
-\alias{worrms}
 \alias{worrms-package}
+\alias{worrms}
 \title{World Register of Marine Species Client}
 \description{
 World Register of Marine Species Client
@@ -18,8 +18,8 @@ Because WoRMS doesn't do comprehensive error reporting, we do a fair
 amount of checking user inputs to help prevent errors that will be
 meaningless to the user. Let us know if we can improve on this.
 }
+
 \author{
 Scott Chamberlain \email{myrmecocystus at gmail.com}
 }
 \keyword{package}
-
diff --git a/tests/testthat/test-wm_children.R b/tests/testthat/test-wm_children.R
index 44cab60..92bbb5b 100644
--- a/tests/testthat/test-wm_children.R
+++ b/tests/testthat/test-wm_children.R
@@ -39,3 +39,43 @@ test_that("wm_children fails well", {
   expect_error(wm_children("asdfafasdfs"), "id must be of class")
   expect_error(wm_children(44444), "\\(204\\) No Content")
 })
+
+
+## plural methods
+context("wm_children_ - plural")
+
+test_that("wm_children_ basic usage works", {
+  skip_on_cran()
+
+  # works for singleton input
+  aa <- wm_children_(id = 254966)
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_gt(NROW(aa), 1)
+  expect_equal(unique(aa$family), "Platanistidae")
+
+  # works for >1 input
+  bb <- wm_children_(id = c(254966, 343613))
+  expect_is(bb, "tbl_df")
+  expect_is(bb, "data.frame")
+  expect_gt(NROW(bb), NROW(aa))
+})
+
+test_that("wm_children_ - 'name' input works", {
+  skip_on_cran()
+
+  aa <- wm_children_(name = c('Platanista', 'Leucophaeus'))
+
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_true(any(grepl('Platanista', aa$scientificname)))
+  expect_true(any(grepl('Leucophaeus', aa$scientificname)))
+})
+
+test_that("wm_children_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_children_(), "use only one of")
+  expect_error(wm_children_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_children_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_classification.R b/tests/testthat/test-wm_classification.R
index 4860ca4..c337d2b 100644
--- a/tests/testthat/test-wm_classification.R
+++ b/tests/testthat/test-wm_classification.R
@@ -20,3 +20,29 @@ test_that("wm_classification fails well", {
   expect_equal(NROW(bb), 0)
   expect_equal(length(names(bb)), 0)
 })
+
+
+context("wm_classification - plural")
+
+test_that("wm_classification_ works", {
+  skip_on_cran()
+
+  # singular works
+  aa <- wm_classification_(id = 105706)
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_named(aa, c('id', 'AphiaID', 'rank', 'scientificname'))
+
+  # many works
+  bb <- wm_classification_(id = c(254967, 344089))
+  expect_is(bb, "tbl_df")
+  expect_is(bb, "data.frame")
+  expect_named(bb, c('id', 'AphiaID', 'rank', 'scientificname'))
+})
+
+test_that("wm_classification_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_classification_(), "use only one of")
+  expect_error(wm_classification_("asdfafasdfs"), "id must be of class")
+})
diff --git a/tests/testthat/test-wm_common_id.R b/tests/testthat/test-wm_common_id.R
index a842082..ff42c0c 100644
--- a/tests/testthat/test-wm_common_id.R
+++ b/tests/testthat/test-wm_common_id.R
@@ -17,3 +17,32 @@ test_that("wm_common_id fails well", {
   expect_error(wm_common_id("asdfafasdfs"), "id must be of class")
   expect_error(wm_common_id(44444), "\\(204\\) No Content")
 })
+
+
+context("wm_common_id_ - plural")
+
+test_that("wm_common_id_ basic usage works", {
+  skip_on_cran()
+
+  # singular
+  aa <- wm_common_id_(id = 156806)
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_named(aa, c('id', 'vernacular', 'language_code', 'language'))
+  expect_match(aa$vernacular, "clam")
+
+  # plural
+  bb <- wm_common_id_(id = c(105706, 156806, 397065))
+  expect_is(bb, "tbl_df")
+  expect_is(bb, "data.frame")
+  expect_named(bb, c('id', 'vernacular', 'language_code', 'language'))
+  expect_gt(NROW(bb), NROW(aa))
+})
+
+test_that("wm_common_id_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_common_id_(), "use only one of")
+  expect_error(wm_common_id_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_common_id_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_distribution.R b/tests/testthat/test-wm_distribution.R
index 3c160bc..ddb4af3 100644
--- a/tests/testthat/test-wm_distribution.R
+++ b/tests/testthat/test-wm_distribution.R
@@ -16,3 +16,29 @@ test_that("wm_distribution fails well", {
   expect_error(wm_distribution("asdfafasdfs"), "id must be of class")
   expect_error(wm_distribution(44444), "\\(204\\) No Content")
 })
+
+
+
+context("wm_distribution_ - plural")
+
+test_that("wm_distribution_ basic usage works", {
+  skip_on_cran()
+
+  aa <- wm_distribution_(id = 156806)
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_gt(NROW(aa), 1)
+
+  bb <- wm_distribution_(id = c(156806, 126436))
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_gt(NROW(bb), NROW(aa))
+})
+
+test_that("wm_distribution_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_distribution_(), "use only one of")
+  expect_error(wm_distribution_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_distribution_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_external.R b/tests/testthat/test-wm_external.R
index a6ce688..b750d38 100644
--- a/tests/testthat/test-wm_external.R
+++ b/tests/testthat/test-wm_external.R
@@ -25,3 +25,30 @@ test_that("wm_external fails well", {
   expect_error(wm_external("asdfafasdfs"), "id must be of class")
   expect_error(wm_external(44444), "\\(204\\) No Content")
 })
+
+
+
+
+
+context("wm_external_ - plural")
+
+test_that("wm_external_ - default usage works", {
+  skip_on_cran()
+
+  aa <- wm_external_(id = 1080)
+  expect_type(aa, "list")
+  expect_type(aa[[1]], "integer")
+  expect_equal(aa[[1]], 85257)
+
+  bb <- wm_external_(id = c(1080, 126436))
+  expect_type(bb, "list")
+  expect_named(bb, c('1080', '126436'))
+})
+
+test_that("wm_external_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_external_(), "use only one of")
+  expect_error(wm_external_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_external_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_id2name.R b/tests/testthat/test-wm_id2name.R
index 139fa4e..5803e8d 100644
--- a/tests/testthat/test-wm_id2name.R
+++ b/tests/testthat/test-wm_id2name.R
@@ -16,3 +16,30 @@ test_that("wm_id2name fails well", {
   expect_error(wm_id2name("asdfafasdfs"), "id must be of class")
   expect_error(wm_id2name(44444), "\\(204\\) No Content")
 })
+
+
+
+
+context("wm_id2name_ - plural")
+
+test_that("wm_id2name_ - default usage works", {
+  skip_on_cran()
+
+  aa <- wm_id2name_(id = 1080)
+  expect_type(aa, "list")
+  expect_type(aa[[1]], "character")
+  expect_equal(aa[[1]], "Copepoda")
+
+  bb <-  wm_id2name_(id = c(105706, 126436))
+  expect_type(bb, "list")
+  expect_equal(length(bb), 2)
+  expect_named(bb, c('105706', '126436'))
+})
+
+test_that("wm_id2name_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_id2name_(), "argument \"id\" is missing")
+  expect_error(wm_id2name_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_id2name_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_name2id.R b/tests/testthat/test-wm_name2id.R
index 76957bb..1c24246 100644
--- a/tests/testthat/test-wm_name2id.R
+++ b/tests/testthat/test-wm_name2id.R
@@ -16,3 +16,28 @@ test_that("wm_name2id fails well", {
   expect_error(wm_name2id(44444), "name must be of class")
   expect_error(wm_name2id("asdfafasdfs"), "\\(204\\) No Content")
 })
+
+
+
+context("wm_name2id_ - plural")
+
+test_that("wm_name2id_ - default usage works", {
+  skip_on_cran()
+
+  aa <- wm_name2id_(name = "Rhincodon")
+  expect_type(aa, "list")
+  expect_named(aa, "Rhincodon")
+
+  bb <- wm_name2id_(name = c("Rhincodon", "Gadus morhua"))
+  expect_type(bb, "list")
+  expect_type(bb[[1]], "integer")
+  expect_named(bb, c("Rhincodon", "Gadus morhua"))
+})
+
+test_that("wm_name2id_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_name2id_(), "argument \"name\" is missing")
+  expect_error(wm_name2id_(44444), "name must be of class")
+  expect_error(wm_name2id_("asdfafasdfs"), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_record.R b/tests/testthat/test-wm_record.R
index 946f14e..7659b27 100644
--- a/tests/testthat/test-wm_record.R
+++ b/tests/testthat/test-wm_record.R
@@ -17,3 +17,31 @@ test_that("wm_record fails well", {
   expect_error(wm_record("asdfafasdfs"), "id must be of class")
   expect_error(wm_record(44444), "\\(204\\) No Content")
 })
+
+
+
+
+context("wm_record_ - plural")
+
+test_that("wm_record_ - default usage works", {
+  skip_on_cran()
+
+  aa <- wm_record_(id = 105706)
+
+  expect_type(aa, "list")
+  expect_equal(aa$`105706`$valid_name, "Rhincodontidae")
+  expect_equal(aa$`105706`$valid_AphiaID, 105706)
+
+  bb <- wm_record_(id = c(105706, 126436))
+
+  expect_type(bb, "list")
+  expect_named(bb, c('105706', '126436'))
+})
+
+test_that("wm_record_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_record_(), "use only one of")
+  expect_error(wm_record_("asdfafasdfs"), "id must be of class")
+  expect_error(wm_record_(44444), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_record_by_external.R b/tests/testthat/test-wm_record_by_external.R
index 2e40186..6561d6e 100644
--- a/tests/testthat/test-wm_record_by_external.R
+++ b/tests/testthat/test-wm_record_by_external.R
@@ -32,3 +32,28 @@ test_that("wm_record_by_external fails well", {
   expect_error(wm_record_by_external(), "argument \"id\" is missing")
   expect_error(wm_record_by_external("asdfafasdfs"), "id must be of class")
 })
+
+
+
+context("wm_record_by_external_ - plural")
+
+test_that("wm_record_by_external_ - default - by id type tsn", {
+  skip_on_cran()
+
+  # singluar
+  tsn <- wm_record_by_external_(id = 85257)
+  expect_type(tsn, "list")
+  expect_named(tsn, "85257")
+
+  # many
+  bb <- wm_record_by_external_(id = c(85257, 159854))
+  expect_is(bb, "list")
+  expect_named(bb, c("85257", "159854"))
+})
+
+test_that("wm_record_by_external_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_record_by_external_(), "use only one of")
+  expect_error(wm_record_by_external_("asdfafasdfs"), "id must be of class")
+})
diff --git a/tests/testthat/test-wm_records_common.R b/tests/testthat/test-wm_records_common.R
index c52ae22..ef949d1 100644
--- a/tests/testthat/test-wm_records_common.R
+++ b/tests/testthat/test-wm_records_common.R
@@ -42,3 +42,28 @@ test_that("wm_records_common fails well", {
   expect_error(wm_records_common(55555), "name must be of class character")
   expect_error(wm_records_common("asdfafasdfs"), "\\(204\\) No Content")
 })
+
+
+
+
+
+context("wm_records_common_ - plural")
+
+test_that("wm_records_common_ - works", {
+  skip_on_cran()
+
+  bb <- wm_records_common_(name = c('dolphin', 'clam'))
+
+  expect_is(bb, "tbl_df")
+  expect_is(bb, "data.frame")
+  expect_true("dolphin" %in% bb$id)
+  expect_true("clam" %in% bb$id)
+})
+
+test_that("wm_records_common_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_records_common_(), "argument \"name\" is missing")
+  expect_error(wm_records_common_(55555), "name must be of class character")
+  expect_error(wm_records_common_("asdfafasdfs"), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_sources.R b/tests/testthat/test-wm_sources.R
index 076ef1e..6c93a94 100644
--- a/tests/testthat/test-wm_sources.R
+++ b/tests/testthat/test-wm_sources.R
@@ -19,3 +19,24 @@ test_that("wm_sources fails well", {
   expect_error(wm_sources(), "argument \"id\" is missing")
   expect_error(wm_sources(55555), "\\(204\\) No Content")
 })
+
+
+
+context("wm_sources_ - plural")
+
+test_that("wm_sources_ - works", {
+  skip_on_cran()
+
+  aa <- wm_sources_(id = c(105706, 126436))
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_true('105706' %in% aa$id)
+  expect_true('126436' %in% aa$id)
+})
+
+test_that("wm_sources_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_sources_(), "use only one of")
+  expect_error(wm_sources_(55555), "\\(204\\) No Content")
+})
diff --git a/tests/testthat/test-wm_synonyms.R b/tests/testthat/test-wm_synonyms.R
index ca70251..7f741ec 100644
--- a/tests/testthat/test-wm_synonyms.R
+++ b/tests/testthat/test-wm_synonyms.R
@@ -21,3 +21,25 @@ test_that("wm_synonyms fails well", {
   expect_error(wm_synonyms(), "argument \"id\" is missing")
   expect_error(wm_synonyms(55555), "\\(204\\) No Content")
 })
+
+
+
+context("wm_synonyms_ - plural")
+
+test_that("wm_synonyms_ - works", {
+  skip_on_cran()
+
+  aa <- wm_synonyms_(id = c(105706, 126436))
+
+  expect_is(aa, "tbl_df")
+  expect_is(aa, "data.frame")
+  expect_true('105706' %in% aa$id)
+  expect_true('126436' %in% aa$id)
+})
+
+test_that("wm_synonyms_ fails well", {
+  skip_on_cran()
+
+  expect_error(wm_synonyms_(), "use only one of")
+  expect_error(wm_synonyms_(55555), "\\(204\\) No Content")
+})
diff --git a/vignettes/worrms_vignette.Rmd b/vignettes/worrms_vignette.Rmd
index da4906f..5dafa5f 100644
--- a/vignettes/worrms_vignette.Rmd
+++ b/vignettes/worrms_vignette.Rmd
@@ -1,29 +1,13 @@
----
-title: "Introduction to the worrms package"
-author: "Scott Chamberlain"
-date: "`r Sys.Date()`"
-output: 
-  html_document:
-    toc: true
-    toc_float: true
-    theme: readable
-vignette: >
-  %\VignetteIndexEntry{Introduction to the worrms package}
-  %\VignetteEngine{knitr::rmarkdown}
-  %\VignetteEncoding{UTF-8}
----
-
-```{r echo=FALSE}
-knitr::opts_chunk$set(
-  comment = "#>",
-  collapse = TRUE,
-  warning = FALSE,
-  message = FALSE
-)
-```
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Introduction to the worrms package}
+%\VignetteEncoding{UTF-8}
+-->
+
+
 
-worrms introduction
-===================
+Introduction to the worrms package
+==================================
 
 `worrms` is an R client for the [World Register of Marine Species](http://www.marinespecies.org/).
 
@@ -31,18 +15,21 @@ worrms introduction
 
 Stable version from CRAN
 
-```{r eval=FALSE}
+
+```r
 install.packages("worrms")
 ```
 
 Development version from GitHub
 
-```{r eval=FALSE}
+
+```r
 install.packages("devtools")
 devtools::install_github("ropensci/worrms")
 ```
 
-```{r}
+
+```r
 library("worrms")
 ```
 
@@ -52,78 +39,215 @@ WoRMS 'records' are taxa, not specimen occurrences or something else.
 
 by date
 
-```{r}
+
+```r
 wm_records_date('2016-12-23T05:59:45+00:00')
+#> # A tibble: 50 x 25
+#>    AphiaID                                                           url
+#>  *   <int>                                                         <chr>
+#>  1  894298 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894298
+#>  2  894301 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894301
+#>  3  894297 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894297
+#>  4  894302 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894302
+#>  5  894296 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894296
+#>  6  894299 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894299
+#>  7  894303 http://www.marinespecies.org/aphia.php?p=taxdetails&id=894303
+#>  8  915236 http://www.marinespecies.org/aphia.php?p=taxdetails&id=915236
+#>  9  906769 http://www.marinespecies.org/aphia.php?p=taxdetails&id=906769
+#> 10  909454 http://www.marinespecies.org/aphia.php?p=taxdetails&id=909454
+#> # ... with 40 more rows, and 23 more variables: scientificname <chr>,
+#> #   authority <chr>, status <chr>, unacceptreason <lgl>, rank <chr>,
+#> #   valid_AphiaID <int>, valid_name <chr>, valid_authority <chr>,
+#> #   kingdom <chr>, phylum <chr>, class <chr>, order <chr>, family <chr>,
+#> #   genus <chr>, citation <chr>, lsid <chr>, isMarine <int>,
+#> #   isBrackish <lgl>, isFreshwater <lgl>, isTerrestrial <lgl>,
+#> #   isExtinct <int>, match_type <chr>, modified <chr>
 ```
 
 by a taxonomic name
 
-```{r}
+
+```r
 wm_records_name(name = 'Platanista gangetica')
+#> # A tibble: 3 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> 2  383571 http://www.marinespecies.org/aphia.php?p=taxdetails&id=383571
+#> 3  254969 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254969
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <int>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 by many names
 
-```{r}
+
+```r
 wm_records_names(name = c('Platanista gangetica', 'Coryphaena'))
+#> [[1]]
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
+#> 
+#> [[2]]
+#> # A tibble: 2 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  125960 http://www.marinespecies.org/aphia.php?p=taxdetails&id=125960
+#> 2  843430                                                          <NA>
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <chr>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <int>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 by common name
 
-```{r}
+
+```r
 wm_records_common(name = 'clam')
+#> # A tibble: 2 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  141919 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141919
+#> 2  141936 http://www.marinespecies.org/aphia.php?p=taxdetails&id=141936
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <int>, isBrackish <lgl>, isFreshwater <lgl>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 using the TAXMATCH algorithm
 
-```{r}
+
+```r
 wm_records_taxamatch(name = 'Platanista gangetica')
+#> [[1]]
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  254967 http://www.marinespecies.org/aphia.php?p=taxdetails&id=254967
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <lgl>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <chr>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <int>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 
 ## APHIA ID <--> name
 
-```{r}
+
+```r
 wm_name2id(name = "Rhincodon")
+#> [1] 105749
 ```
 
-```{r}
+
+```r
 wm_id2name(id = 105706)
+#> [1] "Rhincodontidae"
 ```
 
 ## Get AphiaID via an external ID
 
-```{r}
+
+```r
 wm_external(id = 1080)
+#> [1] 85257
 wm_external(id = 105706)
+#> [1] 159854
 ```
 
 ## Get vernacular names from an AphiaID
 
-```{r}
+
+```r
 wm_common_id(id = 156806)
+#> # A tibble: 2 x 3
+#>            vernacular language_code language
+#> *               <chr>         <chr>    <chr>
+#> 1    gilded wedgeclam           eng  English
+#> 2 Turton's wedge clam           eng  English
 ```
 
 ## Children
 
 Get direct taxonomic children for an AphiaID
 
-```{r}
+
+```r
 wm_classification(id = 105706)
+#> # A tibble: 11 x 3
+#>    AphiaID       rank   scientificname
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
+#> 10   10208      Order Orectolobiformes
+#> 11  105706     Family   Rhincodontidae
 ```
 
 ## Classification
 
 Get classification for an AphiaID
 
-```{r}
+
+```r
 wm_classification(id = 105706)
+#> # A tibble: 11 x 3
+#>    AphiaID       rank   scientificname
+#>  *   <int>      <chr>            <chr>
+#>  1       2    Kingdom         Animalia
+#>  2    1821     Phylum         Chordata
+#>  3  146419  Subphylum       Vertebrata
+#>  4    1828 Superclass    Gnathostomata
+#>  5   11676 Superclass           Pisces
+#>  6   10193      Class   Elasmobranchii
+#>  7  368407   Subclass      Neoselachii
+#>  8  368408 Infraclass         Selachii
+#>  9  368410 Superorder      Galeomorphi
+#> 10   10208      Order Orectolobiformes
+#> 11  105706     Family   Rhincodontidae
 ```
 
 ## Synonyms
 
 Get synonyms for an AphiaID
 
-```{r}
+
+```r
 wm_synonyms(id = 105706)
+#> # A tibble: 1 x 25
+#>   AphiaID                                                           url
+#> *   <int>                                                         <chr>
+#> 1  148832 http://www.marinespecies.org/aphia.php?p=taxdetails&id=148832
+#> # ... with 23 more variables: scientificname <chr>, authority <chr>,
+#> #   status <chr>, unacceptreason <chr>, rank <chr>, valid_AphiaID <int>,
+#> #   valid_name <chr>, valid_authority <chr>, kingdom <chr>, phylum <chr>,
+#> #   class <chr>, order <chr>, family <chr>, genus <lgl>, citation <chr>,
+#> #   lsid <chr>, isMarine <lgl>, isBrackish <lgl>, isFreshwater <lgl>,
+#> #   isTerrestrial <lgl>, isExtinct <lgl>, match_type <chr>, modified <chr>
 ```
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-cran-worrms.git



More information about the debian-med-commit mailing list