## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set(collapse = FALSE, comment = "") # Console colour carries no meaning on a rendered page. pkgdown turns it on for # its own build, and the escape sequences then reach the reader as literal text, # so colour is switched off here for a plain vignette render and a site build # alike. The fixed width keeps tibbles inside the documentation column. options(cli.num_colors = 1, cli.hyperlink = FALSE, crayon.enabled = FALSE, width = 80) # Print data frames and tibbles as formatted tables. local({ kp <- function(x, ...) { if (any(vapply(x, is.list, logical(1)))) return(knitr::normal_print(x)) knitr::knit_print(knitr::kable(x)) } for (cls in c("data.frame", "tbl_df", "tbl")) { registerS3method("knit_print", cls, kp, envir = asNamespace("knitr")) } }) ## ----setup-------------------------------------------------------------------- library(scopusflow) ## ----eval = FALSE------------------------------------------------------------- # recs <- scopus_fetch("DOI(10.1038/nature14539)", view = "COMPLETE") # recs$authkeywords ## ----include = FALSE---------------------------------------------------------- # Representative COMPLETE-view result, assembled offline. authkeywords is the # single string scopus_fetch() returns under view = "COMPLETE", one element # per record, in Scopus' own " | "-delimited form. The bibliographic fields are # the document's own. The 'Scopus' identifier and citation count are left NA, # since nothing on the page prints them and a guess would be a fabrication. recs <- tibble::tibble( entry_number = 1L, scopus_id = NA_character_, doi = "10.1038/nature14539", title = "Deep learning", authors = "LeCun Y.; Bengio Y.; Hinton G.", year = 2015L, date = "2015-05-28", publication = "Nature", citations = NA_integer_, authkeywords = "deep learning | neural networks | representation learning | backpropagation" ) ## ----------------------------------------------------------------------------- recs$authkeywords ## ----eval = FALSE------------------------------------------------------------- # ab <- scopus_abstract( # "10.1038/nature14539", # view = "FULL", include = c("references", "keywords") # ) # ab$references[[1]][, c("title", "authors", "source", "year")] ## ----include = FALSE---------------------------------------------------------- # Representative Abstract Retrieval result: one row carrying a `references` # list-column (a data frame of cited works, in scopus_abstract()'s schema) and # the same n_requests / quota attributes the function attaches. refs <- tibble::tibble( position = as.character(1:4), # The 'Scopus' identifier of each cited work is left NA, as it is whenever # the API does not resolve one. Inventing one for the illustration would # misrepresent what a real call returns. id = NA_character_, doi = c("10.1109/5.726791", "10.1038/nature14236", NA, NA), title = c( "Gradient-based learning applied to document recognition", "Human-level control through deep reinforcement learning", "ImageNet classification with deep convolutional neural networks", "Learning representations by back-propagating errors" ), authors = c( "LeCun Y.; Bottou L.; Bengio Y.; Haffner P.", "Mnih V.; Kavukcuoglu K.; Silver D.", "Krizhevsky A.; Sutskever I.; Hinton G.", "Rumelhart D.; Hinton G.; Williams R." ), source = c( "Proceedings of the IEEE", "Nature", "Advances in Neural Information Processing Systems", "Nature" ), year = c(1998L, 2015L, 2012L, 1986L), # NA is what view = "FULL" actually returns for this column. Only view = # "REF" populates a cited work's own citation count. citedbycount = NA_integer_ ) ab <- tibble::tibble( id = "10.1038/nature14539", doi = "10.1038/nature14539", title = "Deep learning", year = 2015L, # scopus_abstract() joins keywords "; ", like its authors column. Only # Search's COMPLETE view uses the " | " form shown above. authkeywords = "deep learning; neural networks; representation learning; backpropagation", references = list(refs) ) attr(ab, "n_requests") <- 1L attr(ab, "quota") <- list(remaining = 24999L, reset = NA_character_) ## ----------------------------------------------------------------------------- ab$references[[1]][, c("title", "authors", "source", "year")] ## ----------------------------------------------------------------------------- attr(ab, "n_requests") # requests spent so far attr(ab, "quota")$remaining # Abstract Retrieval quota left ## ----eval = FALSE------------------------------------------------------------- # recs <- scopus_fetch("DOI(10.1038/nature14539)", max_results = 1) # corpus <- scopus_corpus(recs, view = "FULL") # corpus$keywords[[1]] # nrow(corpus$references[[1]]) ## ----include = FALSE---------------------------------------------------------- # scopus_corpus() pairs each record with its Abstract Retrieval references and # splits scopus_abstract()'s "; "-joined authkeywords string into a character # vector per record. corpus <- tibble::tibble( id = "10.1038/nature14539", title = "Deep learning", year = 2015L, keywords = list(trimws(strsplit(ab$authkeywords, ";", fixed = TRUE)[[1]])), references = list(refs) ) ## ----------------------------------------------------------------------------- corpus$keywords[[1]] nrow(corpus$references[[1]]) ## ----------------------------------------------------------------------------- sort(table(unlist(corpus$keywords)), decreasing = TRUE)