Retrieve Star Trek data from the Star Trek API (STAPI).
stapi(id, page = 1, uid = NULL, page_count = FALSE)
character, name of STAPI entity. See details.
integer vector, defaults to first page.
NULL
for search mode, character for extraction mode. See details.
logical, set to TRUE
to do a preliminary check of the
total number a pages of results available for a potential entity search.
This will only have the impact of searching the first page.
a data frame in search mode, a list in extraction mode, and nothing is returned in page count check mode but the result is printed to the console.
See stapiEntities()
for all the currently available API entities. These are
the IDs for dataset collections or categories passed to id
.
The universal ID uid
can be supplied to retrieve a more specific subset of
data. By default, uid = NULL
and stapi()
operates in search mode. As part
of a stepwise process, you can first use search mode. Then if the resulting
data frame includes a uid
column, you can make a second call to the
function providing a specific uid
. This puts stapi()
into extraction mode
and will return satellite data associated with the unique entry from the
original general sweep of the entity id
.
rtrek
employs anti-DOS measures. It will not perform an API call to STAPI
more than once per second. To be an even better neighbor, you can increase
this wait time using options()
, e.g. options(rtrek_antidos = 10)
to
increase the minimum time between API calls to ten seconds. Values less than
one are ignored (defaulting back to one second) and a warning will be thrown
when making any API call if this is the case.
Currently STAPI contains primarily real world data such as episode air dates, movie metadata, or production company information. Fictional world data is secondary and more limited.
# \donttest{
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
stapi("character", page_count = TRUE) # check first
#> Total pages to retrieve all results: 76
stapi("character", page = 2) |> select(1:2)
#> # A tibble: 100 × 2
#> uid name
#> <chr> <chr>
#> 1 CHMA0000051779 Alex Smutko
#> 2 CHMA0000020014 Alexana Devos
#> 3 CHMA0000039688 Alexander
#> 4 CHMA0000206312 Alexander
#> 5 CHMA0000213058 Alexander
#> 6 CHMA0000189986 Alexander Courage
#> 7 CHMA0000069404 Alexander Hamilton
#> 8 CHMA0000176430 Alexander Marcus
#> 9 CHMA0000174627 Alexander Marcus
#> 10 CHMA0000007635 Alexander Rozhenko
#> # ℹ 90 more rows
Q <- stapi("character", uid = "CHMA0000025118")
Q$episodes |> select(uid, title, stardateFrom, stardateTo)
#> uid title stardateFrom stardateTo
#> 1 EPMA0000259941 Veritas NA NA
#> 2 EPMA0000000651 Tapestry NA NA
#> 3 EPMA0000000500 Hide And Q 41590.5 41590.5
#> 4 EPMA0000277408 The Star Gazer NA NA
#> 5 EPMA0000280052 Farewell NA NA
#> 6 EPMA0000279099 Two of One NA NA
#> 7 EPMA0000278606 Watcher NA NA
#> 8 EPMA0000001510 The Q and the Grey 50384.2 50392.7
#> 9 EPMA0000001413 True Q 46192.3 46192.3
#> 10 EPMA0000000845 Q-Less 46531.2 46531.2
#> 11 EPMA0000001329 Q Who 42761.3 42761.3
#> 12 EPMA0000278900 Fly Me to the Moon NA NA
#> 13 EPMA0000000483 Encounter at Farpoint 41153.7 41153.7
#> 14 EPMA0000001458 All Good Things... 47988.0 47988.0
#> 15 EPMA0000162588 Death Wish 49301.2 49301.2
#> 16 EPMA0000289337 The Last Generation NA NA
#> 17 EPMA0000001347 Deja Q 43539.1 43539.1
#> 18 EPMA0000277535 Penance NA NA
#> 19 EPMA0000278226 Assimilation NA NA
#> 20 EPMA0000279450 Mercy NA NA
#> 21 EPMA0000001619 Q2 54704.5 54704.5
#> 22 EPMA0000001377 Qpid 44741.9 44741.9
# }