Nothing
## ----style, echo=FALSE, results="asis", message=FALSE-------------------------
knitr::opts_chunk$set(tidy = FALSE,
message = FALSE)
has_scholar <- yulab.utils::has_internet("https://scholar.google.com")
## ----echo=FALSE, results="hide", message=FALSE, eval=has_scholar--------------
library("scholar")
library("ggplot2")
theme_set(theme_minimal())
## ----eval=has_scholar---------------------------------------------------------
## Define the id for Richard Feynman
id <- 'B7vSqZsAAAAJ'
## Get his profile
get_profile(id)
## ----eval=has_scholar---------------------------------------------------------
## Get his publications (a large data frame)
p <- get_publications(id)
head(p, 3)
## ----eval=has_scholar---------------------------------------------------------
## Get his citation history, i.e. citations to his work in a given year
ct <- get_citation_history(id)
## Plot citation trend
library(ggplot2)
ggplot(ct, aes(year, cites)) + geom_line() + geom_point()
## ----eval=has_scholar---------------------------------------------------------
## The following publication will be used to demonstrate article citation history
as.character(p$title[1])
## Get article citation history
ach <- get_article_cite_history(id, p$pubid[1])
## Plot citation trend
ggplot(ach, aes(year, cites)) +
geom_segment(aes(xend = year, yend = 0), linewidth=1, color='darkgrey') +
geom_point(size=3, color='firebrick')
## ----eval=has_scholar---------------------------------------------------------
# Compare Feynman and Stephen Hawking
ids <- c('B7vSqZsAAAAJ', 'qj74uXkAAAAJ')
# Get a data frame comparing the number of citations to their work in
# a given year
cs <- compare_scholars(ids)
## ----echo=FALSE, results="hide", message=FALSE--------------------------------
has_cs <- FALSE
if (has_scholar && !is.null(cs)) {
has_cs <- TRUE
}
## ----eval=has_cs--------------------------------------------------------------
## remove some 'bad' records without sufficient information
cs <- dplyr::filter(cs, !is.na(year) & year > 1900)
ggplot(cs, aes(year, cites, group=name, color=name)) +
geom_line() + theme(legend.position="bottom")
## ----eval=has_scholar---------------------------------------------------------
## Compare their career trajectories, based on year of first citation
csc <- compare_scholar_careers(ids)
## ----echo=FALSE, results="hide", message=FALSE--------------------------------
has_csc <- FALSE
if (has_scholar && !is.null(csc)) {
has_csc <- TRUE
}
## ----eval=has_csc-------------------------------------------------------------
ggplot(csc, aes(career_year, cites, group=name, color=name)) +
geom_line() + geom_point() +
theme(legend.position = "inside",
legend.position.inside=c(.2, .8)
)
## ----eval=has_scholar---------------------------------------------------------
# Be careful with specifying too many coauthors as the visualization of the
# network can get very messy.
coauthor_network <- get_coauthors('DO5oG40AAAAJ', n_coauthors = 4)
coauthor_network
## ----echo=FALSE, results="hide", message=FALSE--------------------------------
has_coauthor <- FALSE
if (has_scholar && (nrow(coauthor_network) > 1)) {
has_coauthor <- TRUE
}
## ----eval=has_coauthor--------------------------------------------------------
plot_coauthors(coauthor_network)
## ----results = "asis", eval=has_scholar---------------------------------------
format_publications("DO5oG40AAAAJ", "Guangchuang Yu") |> head() |> cat(sep='\n\n')
## ----results = "asis", eval=has_scholar---------------------------------------
format_publications("DO5oG40AAAAJ", "Guangchuang Yu") |> head() |> print(quote=FALSE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.