---
title: "tinyscholar"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{tinyscholar}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
The goal of tinyscholar is to provide a simple way to get and show Google scholar profile.
## Installation
You can install the released version of tinyscholar from [CRAN](https://CRAN.R-project.org) with:
``` r
install.packages("tinyscholar")
```
And the development version from [GitHub](https://github.com/) with:
``` r
# install.packages("devtools")
devtools::install_github("ShixiangWang/tinyscholar")
# devtools::install_git("https://gitee.com/ShixiangWang/tinyscholar")
```
## Usage
Here I will use my profile as an example.
```{r}
library(tinyscholar)
```
### Get You Google Scholar ID
Firstly, you need to get your Google scholar ID from URL of your Google scholar profile or by running the following function with a keyword:
```{r, eval=FALSE}
scholar_search("Shixiang Wang")
#> Searching author Shixiang Wang
#> Using API server: https://api.scaleserp.com
#> Using Shixiang's personal API key, only 125 free searches per month for all packages users
#> Search times used: 38
#> Search times left: 87
#> id
#> 1 FvNp0NkAAAAJ
#> desc
#> 1 Wang, Shixiang (王诗翔)ShanghaiTech. UniversityVerified email at shanghaitech.edu.cnCited by 127
```
Copy your ID and go to the next step.
### Get Personal Profile
Then you can use function `tinyscholar()` to get the tidy data, which is a list of two `data.frame` with added `profile` class.
```{r}
profile <- tinyscholar("FvNp0NkAAAAJ")
str(profile, max.level = 1)
```
You can use this data in your way. The following parts provide two simple ways to show the profile.
### Show Table
Table is the best way to show the scholar profile. Tinyscholar uses [gt](https://gt.rstudio.com/index.html) package to generate tables which can be easily modified.
```{r eval = inherits(profile, "ScholarProfile")}
tb <- scholar_table(profile)
tb$citations
tb$publications
```
### Show Plot
Similarly, you can show numeric data with ggplot2 package.
```{r, eval = inherits(profile, "ScholarProfile"), fig.align='center', fig.width=5, fig.height=3.5}
pl <- scholar_plot(profile)
pl$citations
pl$publications
```
## Similar R package
R package [scholar](https://cran.r-project.org/package=scholar) is a more comprehensive package to get and visualize the Google scholar profile. However, tinyscholar is lightweight and not limited in China.