libraries

source("verbs.R")
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.8
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   2.1.2     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(tidygraph)
## 
## Attaching package: 'tidygraph'
## The following object is masked from 'package:stats':
## 
##     filter
library(bibliometrix)
## To cite bibliometrix in publications, please use:
## 
## Aria, M. & Cuccurullo, C. (2017) bibliometrix: An R-tool for comprehensive science mapping analysis, 
##                                  Journal of Informetrics, 11(4), pp 959-975, Elsevier.
##                         
## 
## https://www.bibliometrix.org
## 
##                         
## For information and bug reports:
##                         - Send an email to info@bibliometrix.org   
##                         - Write a post on https://github.com/massimoaria/bibliometrix/issues
##                         
## Help us to keep Bibliometrix free to download and use by contributing with a small donation to support our research team (https://bibliometrix.org/donate.html)
## 
##                         
## To start with the shiny web-interface, please digit:
## biblioshiny()
library(tidytext)
library(wordcloud)
## Loading required package: RColorBrewer

loading data

scopus_df <- 
  read_csv("https://docs.google.com/spreadsheets/d/1o6qOTrktWLYofrgzj51Lv5QwbwWPdkGVy40m6QOA6Lo/export?format=csv&gid=405470983")
## Rows: 199 Columns: 37── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (32): AU, DE, ID, C1, CR, JI, AB, PA, AR, chemicals_cas, coden, RP, DT, ...
## dbl  (4): TC, PN, PM, PY
## lgl  (1): AU_UN_NR
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Creating references table

references_df <- 
  get_references(scopus_df)

Creating the graph

citation_network <- 
  get_citation_network(scopus_df, 
                       references_df = references_df)

Creating graph ToS

citation_graph_tos <- 
  get_citation_network_tos(citation_network = citation_network)

Wordcloud

pal <- brewer.pal(8,"Dark2")

citation_graph_tos |> 
  activate(nodes) |> 
  filter(subfield == 1) |> 
  select(TI) |> 
  as_tibble() |> 
  unnest_tokens(output = word,
                input = TI) |> 
  dplyr::anti_join(stop_words) |> 
  count(word, sort = TRUE) |> 
  with(wordcloud(word, 
                 n, 
                 random.order = FALSE, 
                 max.words = 50, 
                 colors=pal))
## Joining, by = "word"

citation_graph_tos |> 
  activate(nodes) |> 
  filter(subfield == 2) |> 
  select(TI) |> 
  as_tibble() |> 
  unnest_tokens(output = word,
                input = TI) |> 
  dplyr::anti_join(stop_words) |> 
  count(word, sort = TRUE) |>
  filter(word == str_remove(word, pattern = "static"),
         word == str_remove(word, pattern = "analysis"),
         word == str_remove(word, pattern = "software"),
         word == str_remove(word, pattern = "bugs")) |> 
  with(wordcloud(word, 
                 n, 
                 random.order = FALSE, 
                 max.words = 50, 
                 colors=pal))
## Joining, by = "word"
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): engineering could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): repositories could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): systems could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): abstract could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): automated could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): learning could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): positive could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): research could not be fit on page. It will not be plotted.
## Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors =
## pal): results could not be fit on page. It will not be plotted.

citation_graph_tos |> 
  activate(nodes) |> 
  filter(subfield == 3) |> 
  select(TI) |> 
  as_tibble() |> 
  unnest_tokens(output = word,
                input = TI) |> 
  dplyr::anti_join(stop_words) |> 
  count(word, sort = TRUE) |> 
  filter(word == str_remove(word, pattern = "software")) |> 
  with(wordcloud(word, 
                 n, 
                 random.order = FALSE, 
                 max.words = 50, 
                 colors=pal))
## Joining, by = "word"