Compares how often a set of comparison topics co-occur with a reference topic over time. For each year and each comparison term, the number of records matching the reference combined with that term is expressed as a percentage of the records matching the reference alone. This reveals which sub-topics are growing or shrinking within a literature.
Usage
scopus_compare_topics(
reference_query,
comparison_terms,
years,
field = NULL,
view = c("STANDARD", "COMPLETE"),
api_key = NULL,
inst_token = NULL,
verbose = FALSE
)Arguments
- reference_query
Character scalar. The reference topic that anchors the comparison (for example
"language learning").- comparison_terms
Character vector of topics to compare against the reference (for example
c("effect size", "Bayesian")). Each is combined with the reference using a logical AND.- years
Integer vector of publication years to span (for example
2015:2020).- field
Optional 'Scopus' field tag applied to every component of every query (see
scopus_plan()).- view
Either
"STANDARD"or"COMPLETE".- api_key, inst_token
Optional credentials (see
scopus_has_key()).- verbose
Logical. When
TRUE, progress is reported.
Value
A tibble of class scopus_comparison with the columns query (the
full query used), query_type ("reference" or "comparison"),
abridged_query (the topic label for plotting), year, n (records that
year), reference_n (reference records that year), comparison_percentage
(100 * n / reference_n, or NA when reference_n is 0) and
average_comparison_percentage (the same ratio computed on period totals).
Comparison rows are sorted by descending average percentage.
API access
This performs one count request per term per year, so it requires a valid API
key and internet access. The API access section of scopus_count() gives
the details. A modest number of terms and years keeps the call within quota.
See also
plot_scopus_comparison() to visualise the result.
Examples
if (FALSE) { # scopusflow::scopus_has_key()
cmp <- scopus_compare_topics(
reference_query = "deep learning",
comparison_terms = c("computer vision", "drug discovery"),
years = 2018:2022,
field = "TITLE-ABS-KEY"
)
cmp
}
# The shape of the return value, built offline so it runs without a key.
years <- 2018:2022
ref_n <- c(4200, 5600, 7100, 8600, 10200)
counts <- list(`computer vision` = c(1500, 2000, 2500, 3000, 3600),
`drug discovery` = c(180, 260, 370, 500, 660))
cmp <- tibble::tibble(
query = "TITLE-ABS-KEY(deep learning)",
query_type = c(rep("reference", length(years)),
rep("comparison", length(counts) * length(years))),
abridged_query = c(rep("deep learning", length(years)),
rep(names(counts), each = length(years))),
year = rep(years, length(counts) + 1),
n = c(ref_n, unlist(counts, use.names = FALSE)),
reference_n = rep(ref_n, length(counts) + 1),
comparison_percentage = 100 * c(ref_n, unlist(counts, use.names = FALSE)) /
rep(ref_n, length(counts) + 1),
average_comparison_percentage = c(rep(100, length(years)),
rep(c(35.3, 5.4), each = length(years)))
)
class(cmp) <- c("scopus_comparison", class(cmp))
cmp
#> <scopus_comparison> (3 topics)
#> # A tibble: 15 × 8
#> query query_type abridged_query year n reference_n comparison_percentage
#> <chr> <chr> <chr> <int> <dbl> <dbl> <dbl>
#> 1 TITL… reference deep learning 2018 4200 4200 100
#> 2 TITL… reference deep learning 2019 5600 5600 100
#> 3 TITL… reference deep learning 2020 7100 7100 100
#> 4 TITL… reference deep learning 2021 8600 8600 100
#> 5 TITL… reference deep learning 2022 10200 10200 100
#> 6 TITL… comparison computer visi… 2018 1500 4200 35.7
#> 7 TITL… comparison computer visi… 2019 2000 5600 35.7
#> 8 TITL… comparison computer visi… 2020 2500 7100 35.2
#> 9 TITL… comparison computer visi… 2021 3000 8600 34.9
#> 10 TITL… comparison computer visi… 2022 3600 10200 35.3
#> 11 TITL… comparison drug discovery 2018 180 4200 4.29
#> 12 TITL… comparison drug discovery 2019 260 5600 4.64
#> 13 TITL… comparison drug discovery 2020 370 7100 5.21
#> 14 TITL… comparison drug discovery 2021 500 8600 5.81
#> 15 TITL… comparison drug discovery 2022 660 10200 6.47
#> # ℹ 1 more variable: average_comparison_percentage <dbl>
