# scholar: Analyse citation data from Google Scholar

#### Guangchuang Yu, James Keirstead and Gregory Jefferis

#### 2026-02-26

# Retrieving basic information

    ## Define the id for Richard Feynman
    id <- 'B7vSqZsAAAAJ'

    ## Get his profile
    get_profile(id)

    ## $id
    ## [1] "B7vSqZsAAAAJ"
    ##
    ## $name
    ## [1] "Richard Feynman"
    ##
    ## $affiliation
    ## [1] "California Institute of Technology"
    ##
    ## $total_cites
    ## [1] 136093
    ##
    ## $h_index
    ## [1] 62
    ##
    ## $i10_index
    ## [1] 102
    ##
    ## $fields
    ## [1] "quantum mechanics"       "quantum electrodynamics"
    ##
    ## $homepage
    ## character(0)
    ##
    ## $coauthors
    ## [1] "Sort by citations" "Sort by year"      "Sort by title"
    ## [4] "About Scholar"     "Search help"
    ##
    ## $available
    ## [1] NA
    ##
    ## $not_available
    ## [1] NA

# Retrieving publications

`get_publications()` return a `data.frame` of publication records. It contains information of the publications, including title, author list, page number, citation number, publication year, etc..

The `pubid` is the article ID used by Google Scholar and the identifier that is used to retrieve the citation history of a selected publication.

    ## Get his publications (a large data frame)
    p <- get_publications(id)
    head(p, 3)

    ##                                    title
    ## 1 Quantum mechanics and path integration
    ## 2        The Feynman lectures on physics
    ## 3      Simulating physics with computers
    ##                                         author
    ## 1                         RP Feynman, AR Hibbs
    ## 2 RP Feynman, RB Leighton, M Sands, SB Treiman
    ## 3                                   RP Feynman
    ##                                        journal          number cites year
    ## 1                                  McGraw–Hill                 38731 1965
    ## 2                                Physics Today          17, 45 24051 1964
    ## 3 International journal of theoretical physics 21 (6), 467-488 15402 1982
    ##                                                                                  cid
    ## 1                     14769952204323476283,12549707430555464374,18041911941623786099
    ## 2 14769952204323476283,15649786516955137750,13112633961799421939,3669163321259408309
    ## 3                                                               15599256484525608168
    ##          pubid
    ## 1 hMod-77fHWUC
    ## 2 u-x6o8ySG0sC
    ## 3 d1gkVwhDpl0C

# Retrieving citation data

    ## 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()

Users can retrieve the citation history of a particular publication with `get_article_cite_history()`.

    ## The following publication will be used to demonstrate article citation history
    as.character(p$title[1])

    ## [1] "Quantum mechanics and path integration"

    ## 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')

# Comparing scholars

You can compare the citation history of scholars by fetching data with `compare_scholars`.

    # Compare Feynman and Stephen Hawking
    ids <- c('B7vSqZsAAAAJ', 'DO5oG40AAAAJ')

    # Get a data frame comparing the number of citations to their work in
    # a given year
    cs <- compare_scholars(ids)

    ## 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")

    ## Compare their career trajectories, based on year of first citation
    csc <- compare_scholar_careers(ids)

    ggplot(csc, aes(career_year, cites, group=name, color=name)) +
      geom_line() + geom_point() +
      theme(legend.position = "inside",
        legend.position.inside=c(.2, .8)
      )

# Visualizing and comparing network of coauthors

    # 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

    ##                              author          coauthors
    ## qgFBNJgAAAAJ&hl      Guangchuang Yu       Shuangbin Xu
    ## kRtxIw0AAAAJ&hl      Guangchuang Yu Tommy Tsan-Yuk Lam
    ## 1M8ux5YAAAAJ&hl      Guangchuang Yu       Qianwen Wang
    ## WmjCTgMAAAAJ&hl      Guangchuang Yu        Zhu Huachen
    ## DO5oG40AAAAJ&hl        Shuangbin Xu     Guangchuang Yu
    ## 1M8ux5YAAAAJ&hl1       Shuangbin Xu       Qianwen Wang
    ## HxxRzrYAAAAJ&hl        Shuangbin Xu      Zhangran Chen
    ## 4                Tommy Tsan-Yuk Lam      About Scholar
    ## DO5oG40AAAAJ&hl1       Qianwen Wang     Guangchuang Yu
    ## qgFBNJgAAAAJ&hl1       Qianwen Wang       Shuangbin Xu
    ## b-duIhMAAAAJ&hl        Qianwen Wang       Hon-Ming Lam
    ## GzJd-VoAAAAJ&hl        Qianwen Wang     Wai-Shing Yung
    ## kRtxIw0AAAAJ&hl1        Zhu Huachen Tommy Tsan-Yuk Lam
    ## 1mTtPIIAAAAJ&hl         Zhu Huachen       Steven Riley
    ## DO5oG40AAAAJ&hl2        Zhu Huachen     Guangchuang Yu
    ## Syrp1IMAAAAJ&hl         Zhu Huachen    Edward C Holmes

And then we have a built-in function to plot this visualization.

    plot_coauthors(coauthor_network)

    ## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
    ## ℹ Please use tidy evaluation idioms with `aes()`.
    ## ℹ See also `vignette("ggplot2-in-packages")` for more information.
    ## ℹ The deprecated feature was likely used in the scholar package.
    ##   Please report the issue at <https://github.com/YuLab-SMU/scholar/issues>.
    ## This warning is displayed once per session.
    ## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
    ## generated.

    ## Warning: Removed 6 rows containing missing values or values outside the scale range
    ## (`geom_point()`).

Note however, that these are the coauthors listed in Google Scholar profile and not coauthors from all publications.

# Formatting publications for CV

The `format_publications` function can be used for example in conjunction with the `vitae` package to format publications in APA Style. The short name of the author of interest (e.g., of the person whose CV is being made) can be highlighted in bold with the `author.name` argument. The function after the pipe allows rmarkdown to format them properly, and the code chunk should be set to `results = "asis"`.

### APA style

    format_publications("DO5oG40AAAAJ", "Guangchuang Yu") |> head() |> cat(sep='\n\n')

Feng, Y., Zheng, L., Tang, W., Wang, P., Lai, Y., Qin, J., Zhou, C., Zhang, X., & … (2026). Gut metabolite indole-3-acetic acid aggravates neuropsychiatric lupus via the AHR/STAT3 pathway in microglia. Communications Biology.

Yu, G. (2026). Background bias in functional enrichment analysis: Insights from clusterProfiler. The Innovation Life. 4 (1), 100181

Wang, Q., Deng, L., Xu, S., Guo, P., Zhu, H., Ge, H., Gong, Y., Du, G., Huang, K., & … (2026). Comparison of Illumina NovaSeq 6000 and GeneMind SURFSeq 5000 platforms for single‐cell spatial transcriptomics of mouse brain and lung. Interdisciplinary Medicine, e. e70067

Xu, S., Wang, Q., Wen, S., Li, J., He, N., Li, M., Hackl, T., Wang, R., Zeng, D., Wang, S., & … (2025). aplot: Simplifying the creation of complex graphs to visualize associations across diverse data types. The Innovation. 6 (9), 100958

Wang, Q., Zhu, H., Deng, L., Xu, S., Xie, W., Li, M., Wang, R., Tie, L., Zhan, L., & Yu, G. (2025). Spatial Transcriptomics: Biotechnologies, Computational Tools, and Neuroscience Applications. Small Methods. 9 (5), 2401107

Liu, B., Liu, Y., Xu, S., Wu, Q., Wu, D., Zhan, L., Liao, Y., Mai, Y., Zheng, M., Wang, S., & … (2025). EasyMultiProfiler: an efficient multi-omics data integration and analysis workflow for microbiome research. Science China Life Sciences. 1-10

### Numbering format

    format_publications("DO5oG40AAAAJ", "Guangchuang Yu") |> head() |> print(quote=FALSE)

[1] Feng, Y., Zheng, L., Tang, W., Wang, P., Lai, Y., Qin, J., Zhou, C., Zhang, X., & … (2026). Gut metabolite indole-3-acetic acid aggravates neuropsychiatric lupus via the AHR/STAT3 pathway in microglia. Communications Biology.
[2] Yu, G. (2026). Background bias in functional enrichment analysis: Insights from clusterProfiler. The Innovation Life. 4 (1), 100181
[3] Wang, Q., Deng, L., Xu, S., Guo, P., Zhu, H., Ge, H., Gong, Y., Du, G., Huang, K., & … (2026). Comparison of Illumina NovaSeq 6000 and GeneMind SURFSeq 5000 platforms for single‐cell spatial transcriptomics of mouse brain and lung. Interdisciplinary Medicine, e. e70067 [4] Xu, S., Wang, Q., Wen, S., Li, J., He, N., Li, M., Hackl, T., Wang, R., Zeng, D., Wang, S., & … (2025). aplot: Simplifying the creation of complex graphs to visualize associations across diverse data types. The Innovation. 6 (9), 100958
[5] Wang, Q., Zhu, H., Deng, L., Xu, S., Xie, W., Li, M., Wang, R., Tie, L., Zhan, L., & Yu, G. (2025). Spatial Transcriptomics: Biotechnologies, Computational Tools, and Neuroscience Applications. Small Methods. 9 (5), 2401107
[6] Liu, B., Liu, Y., Xu, S., Wu, Q., Wu, D., Zhan, L., Liao, Y., Mai, Y., Zheng, M., Wang, S., & … (2025). EasyMultiProfiler: an efficient multi-omics data integration and analysis workflow for microbiome research. Science China Life Sciences. 1-10