[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