# jst_get_total_pages: Calculate total pages In jstor: Read Data from JSTOR/DfR

## Description

This function is a simple helper to calculate the total number of pages of an article.

## Usage

 `1` ```jst_get_total_pages(first_page, last_page, page_range, quietly = FALSE) ```

## Arguments

 `first_page` The first page of an article (numeric). `last_page` The last page of an article (numeric). `page_range` The page range of an article (character). `quietly` Sometimes page ranges contain roman numerals like `xiv`. These are not recognized, return `NA` and raise a warning. If set to `TRUE`, this warning not raised.

## Details

This function deals with four cases:

• if all three arguments are missing, NA is returned.

• if page_range is supplied, the number of pages is calculated from it.

• if only the first page is supplied, NA is returned.

• if first and last page are supplied, the number of pages is calculated as `last_page - first_page + 1`.

The algorithm to parse page ranges works as follows: A typical page range is `1-10, 200` where the article starts at page 1, ends at page 10, and has an erratum at page 200. For this case, the range is calculated as `range + single_page`, as in`(10 - 1 + 1) + 1 = 11`. Sometimes multiple ranges are given: `1-10, 11-20`. For those cases all ranges are summed: `(10 - 1 + 1) + (20 - 11 + 1) = 20`. Another specification for multiple ranges is `1-10+11-20`, which is treated similarly.

## Value

A vector with the calculated total pages.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```# calculate pages from first and last page first_pages <- sample(30:50, 10) last_pages <- first_pages + sample(5:20, 10) page_ranges <- rep(NA_character_, 10) jst_get_total_pages(first_pages, last_pages, page_ranges) # get pages from page range jst_get_total_pages(NA_real_, NA_real_, "51 - 70") jst_get_total_pages(NA_real_, NA_real_, "51 - 70, 350") jst_get_total_pages(NA_real_, NA_real_, "350, 51 - 70") jst_get_total_pages(NA_real_, NA_real_, "51 - 70, 80-100") jst_get_total_pages(NA_real_, NA_real_, "51-70+350") ```

jstor documentation built on Dec. 11, 2021, 9:56 a.m.