---
title: "Mining species number of any plant family"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Mining species number of any plant family}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{css, echo=FALSE}
.table{
  width: auto;
  font-size: 14px;
}
.table caption {
  font-size: 1em;
}
```

Here in this article, we show how to use the package's function `powoFam` 
for mining the species number for any family of angiosperms, gymnosperms and 
pteridophytes. By providing a family name or a vector of family names, 
the `powoFam` function visits each POWO page of the genera within the queried 
family(ies) to extract the accepted species number. Then, it sums these values 
to deliver the total species number within each plant family.\

\

# Setup

Install the latest development version of __expowo__ from 
[GitHub](https://github.com/):

``` r
#install.packages("devtools")
devtools::install_github("DBOSlab/expowo")
```
```{r package load, message=FALSE, warning=FALSE}
library(expowo)
```

\

## Mining the total species number for any plant family

The function `powoFam` returns a data frame or saves a CSV file listing the total
species number (excluding hybrid species) for the queried plant families.\

The example below shows how to mine the total species number by defining a vector 
of three families: __Cabombaceae__, __Lecythidaceae__, and __Martyniaceae__. 
The resulting output (TABLE 1) is also saved directly in the specified directory
__results_powoFam__.\

```{r, eval = FALSE}
CLM <- powoFam(family = c("Cabombaceae", "Lecythidaceae", "Martyniaceae"),
               verbose = TRUE,
               save = FALSE,
               dir = "results_powoFam",
               filename = "Camb_Lecy_Martyniaceae_diversity")
```

\

```{r, echo = FALSE, warning = FALSE}
utils::data("angioData")
utils::data("POWOcodes")
family <- c("Cabombaceae", "Lecythidaceae", "Martyniaceae")
fams <- angioData$family[angioData$family %in% family]
sp_nbr <- as.data.frame(table(fams))
powo_uri <- gsub("^http", "https", POWOcodes$uri[POWOcodes$family %in% family])
kew_id <- gsub(".+[:]", "", powo_uri)
species_number <- sp_nbr$Freq
res <- data.frame(family, species_number, kew_id, powo_uri)

knitr::kable(res,
             row.names = FALSE,
             align = 'c',
             caption = "TABLE 1. A general `powoFam` search for mining the total species number of three angiosperm families.")
```

\

## Mining species number accross all plant families

To mine the species number of all families of vascular plants, we recommend to 
load the dataframe-formatted object called `POWOcodes` that comes associated 
with the __expowo__ package. The `POWOcodes` data object already contains the 
URI addresses for all plant families recognized in the 
[POWO](https://powo.science.kew.org) database, so you just need to call it to 
the R environment.\

The example below shows how to mine the species number of all vascular plant 
families by using the vector of all plant families and associated URI 
addresses stored in the `POWOcodes` object.\

```{r, eval = FALSE}
utils::data(POWOcodes)

ALL_fam <- powoFam(POWOcodes$family,
                   verbose = TRUE,
                   save = FALSE,
                   dir = "results_powoFam",
                   filename = "all_plants_species_number")
```

\

## Reference

POWO (2019). "Plants of the World Online. Facilitated by the Royal Botanic Gardens, Kew. Published on the Internet; http://www.plantsoftheworldonline.org/ Retrieved April 2023."
