This template is based in this paper
https://revistas.ucm.es/index.php/REVE/article/view/75566/4564456557467
For a detail explanation of how to use it, please watch this video
wos_scopus_tos <-
tosr::tosr_load("data/software_model_check.bib",
"data/software_model_check.txt")
tree_of_science <-
tosr::tosR("data/software_model_check.bib",
"data/software_model_check.txt")
wos <-
bibliometrix::convert2df("data/software_model_check.txt") # create dataframe from wos file
scopus <-
bibliometrix::convert2df("data/software_model_check.bib", # Create dataframe from scopus file
dbsource = "scopus",
format = "bibtex")
table_1 <-
tibble(wos = length(wos$SR), # Create a dataframe with the values.
scopus = length(scopus$SR),
total = length(wos_scopus_tos$df$SR))
table_1
main_languages <-
wos_scopus_tos$df |>
select(LA) |>
separate_rows(LA, sep = "; ") |>
count(LA, sort = TRUE) |>
slice(1:5)
other_languages <-
wos_scopus_tos$df |>
separate_rows(LA, sep = "; ") |>
select(LA) |>
count(LA, sort = TRUE) |>
slice(6:n) |>
summarise(n = sum(n)) |>
mutate(LA = "OTHERS") |>
select(LA, n)
Warning in 6:n :
numerical expression has 5 elements: only the first used
languages <-
main_languages |>
bind_rows(other_languages) |>
mutate(percentage = n / sum(n),
percentage = round(percentage,
digits = 2) ) |>
rename(language = LA) |>
select(language, percentage, count = n)
languages
df <- languages |>
rename(value = percentage, group = language) |>
mutate(value = value * 100) |>
select(value, group)
df2 <- df %>%
mutate(csum = rev(cumsum(rev(value))),
pos = value/2 + lead(csum, 1),
pos = if_else(is.na(pos), value/2, pos))
ggplot(df, aes(x = 2 , y = value, fill = fct_inorder(group))) +
geom_col(width = 1, color = 1) +
coord_polar(theta = "y") +
geom_label_repel(data = df2,
aes(y = pos, label = paste0(value, "%")),
size = 4.5, nudge_x = 1, show.legend = FALSE) +
theme(panel.background = element_blank(),
axis.line = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
plot.title = element_text(hjust = 0.5, size = 18)) +
labs(title = "Languages") +
guides(fill = guide_legend(title = "")) +
theme_void() +
xlim(0.5, 2.5)
wos_anual_production <-
wos |>
select(PY) |>
count(PY, sort = TRUE) |>
na.omit() |>
filter(PY >= 2000,
PY < year(today())) |>
mutate(ref_type = "wos")
scopus_anual_production <-
scopus |>
select(PY) |>
count(PY, sort = TRUE) |>
na.omit() |>
filter(PY >= 2000,
PY < year(today())) |>
mutate(ref_type = "scopus")
total_anual_production <-
wos_scopus_tos$df |>
select(PY) |>
count(PY, sort = TRUE) |>
na.omit() |>
filter(PY >= 2000,
PY < year(today())) |>
mutate(ref_type = "total")
wos_scopus_total_annual_production <-
wos_anual_production |>
bind_rows(scopus_anual_production,
total_anual_production)
figure_2_data <-
wos_scopus_total_annual_production |>
mutate(PY = replace_na(PY, replace = 0)) |>
pivot_wider(names_from = ref_type,
values_from = n) |>
arrange(desc(PY))
figure_2_data
wos_scopus_total_annual_production |>
ggplot(aes(x = PY, y = n, color = ref_type)) +
geom_line() +
labs(title = "Annual Scientific Production",
x = "years",
y = "papers") +
theme(plot.title = element_text(hjust = 0.5))
data_biblio_wos <- biblioAnalysis(wos)
wos_country <-
data_biblio_wos$Countries |>
data.frame() |>
mutate(database = "wos") |>
select(country = Tab, papers = Freq, database ) |>
arrange(desc(papers))
data_biblio_scopus <- biblioAnalysis(scopus)
scopus_country <-
data_biblio_scopus$Countries |>
data.frame() |>
mutate(database = "scopus") |>
select(country = Tab, papers = Freq, database ) |>
arrange(desc(papers))
data_biblio_total <- biblioAnalysis(wos_scopus_tos$df)
total_country <-
data_biblio_total$Countries |>
data.frame() |>
mutate(database = "total") |>
select(country = Tab, papers = Freq, database ) |>
arrange(desc(papers))
wos_scopus_total_country <-
wos_country |>
bind_rows(scopus_country,
total_country) |>
mutate(country = as.character(country)) |>
pivot_wider(names_from = database,
values_from = papers) |>
arrange(desc(total)) |>
slice(1:10) |>
mutate(percentage = total / (table_1 |> pull(total)),
percentage = round(percentage, digits = 2))
wos_scopus_total_country
wos_journal <-
wos |>
select(journal = SO) |>
na.omit() |>
count(journal, sort = TRUE) |>
slice(1:20) |>
rename(publications = n) |>
mutate(database = "wos")
scopus_journal <-
scopus |>
select(journal = SO) |>
na.omit() |>
count(journal, sort = TRUE) |>
slice(1:20) |>
rename(publications = n) |>
mutate(database = "scopus")
total_journal <-
wos_scopus_tos$df |>
select(journal = SO) |>
na.omit() |>
count(journal, sort = TRUE) |>
slice(1:20) |>
rename(publications = n) |>
mutate(database = "total")
wos_scopus_total_journal <-
wos_journal |>
bind_rows(scopus_journal,
total_journal) |>
pivot_wider(names_from = database,
values_from = publications) |>
arrange(desc(total)) |>
slice(1:10) |>
mutate(percentage = total / table_1 |> pull(total),
percentage = round(percentage, digits = 2))
wos_scopus_total_journal
plot_country_collab <-
networkPlot(wos_scopus_country_collab_matrix,
weighted=T, n = 30,
Title = "Country Collaboration Network",
type = "fruchterman",
size=T,
edgesize = 5,
labelsize=0.7)
Warning in min(E(bsk.network)$weight) :
no non-missing arguments to min; returning Inf
Warning in min(E(bsk.network)$weight) :
no non-missing arguments to min; returning Inf
Warning in max(E(bsk.network)$weight + min(E(bsk.network)$weight)) :
no non-missing arguments to max; returning -Inf
Error in if (V(bsk.network)$community[x[1]] == V(bsk.network)$community[x[2]]) { :
argument is of length zero
wos_scopus_keyword_co_occurrence_matrix <-
biblioNetwork(M = wos_scopus_tos$df,
analysis = "co-occurrences",
network = "keywords",
sep = ";")
plot_net_co_occurrence <-
networkPlot(wos_scopus_keyword_co_occurrence_matrix,
weighted=T, n = 30,
Title = "Keyword Co-occurrence Network",
type = "fruchterman",
size=T,
edgesize = 5,
labelsize=0.7)
keyword_co_occurrence_tbl_graph <-
graph_from_adjacency_matrix(wos_scopus_keyword_co_occurrence_matrix ,
mode = "undirected",
weighted = TRUE,
diag = FALSE) |>
as_tbl_graph(aca_igraph, directed = FALSE ) |>
activate(nodes) |>
mutate(degree = centrality_degree()) |>
arrange(desc(degree)) |>
slice(1:30)
keyword_co_occurrence_weight_tbl <-
keyword_co_occurrence_tbl_graph |>
activate(edges) |>
select(weight) |>
as.data.frame()
threshold <-
quantile(keyword_co_occurrence_weight_tbl |>
select(weight) |>
pull(),
probs = 0.80)
keyword_co_occurrence_tbl_graph_filtered <-
keyword_co_occurrence_tbl_graph |>
activate(edges) |>
filter(weight >= threshold) |>
activate(nodes) |>
mutate(components = group_components(type = "weak")) |>
filter(components == 1) |>
mutate(degree = centrality_degree(),
community = as.factor(group_louvain()) )
keyword_co_occurrence_tbl_graph_filtered |>
ggraph(layout = "kk") +
geom_edge_link(alpha = .25,
aes(width = weight)) +
geom_node_point(aes(colour = community,
size = degree)) +
geom_node_text(aes(label = name), repel = TRUE) +
theme_graph()
tree_of_science
Finding the clusters
nodes <- # Create a dataframe with the fullname of articles
tibble(name = V(wos_scopus_tos$graph)$name) |>
left_join(wos_scopus_tos$nodes,
by = c("name" = "ID_TOS"))
wos_scopus_citation_network_1 <- # Add the article names to the citation network
wos_scopus_tos$graph |>
igraph::set.vertex.attribute(name = "full_name",
index = V(wos_scopus_tos$graph)$name,
value = nodes$CITE)
nodes_1 <- # Create a dataframe with subfields (clusters)
tibble(name = V(wos_scopus_citation_network_1)$name,
cluster = V(wos_scopus_citation_network_1)$subfield,
full_name = V(wos_scopus_citation_network_1)$full_name)
nodes_2 <- # Count the number of articles per cluster
nodes_1 |>
count(cluster, sort = TRUE) |>
mutate(cluster_1 = row_number()) |>
select(cluster, cluster_1)
nodes_3 <-
nodes_1 |>
left_join(nodes_2) |>
rename(subfield = cluster_1) |>
select(name, full_name, subfield)
Joining, by = "cluster"
edge_list <-
get.edgelist(wos_scopus_citation_network_1) |>
data.frame() |>
rename(Source = X1, Target = X2)
wos_scopus_citation_network <-
graph.data.frame(d = edge_list,
directed = TRUE,
vertices = nodes_3)
wos_scopus_citation_network |>
summary()
IGRAPH 1cbc7cc DN-- 1817 5862 --
+ attr: name (v/c), full_name (v/c), subfield (v/n)
Choosing clusters
We proposed the tipping point option to choose the number of clusters. See this paper:
https://www.nature.com/articles/s41598-021-85041-8
clusters <-
tibble(cluster = V(wos_scopus_citation_network)$subfield) |>
count(cluster, sort = TRUE)
clusters |>
ggplot(aes(x = reorder(cluster, n), y = n)) +
geom_point(size = 3) +
labs(x = "Clusters", y = "Number of papers") +
theme(axis.title.x = element_text(size = 16 ,
family = "Arial"),
axis.title.y = element_text(size = 16, family = "Arial"),
axis.text.x = element_text(size = 12, family = "Arial"),
axis.text.y = element_text(size = 12, family = "Arial"))
Removing not chosen clusters
wos_scopus_citation_network_clusters <-
wos_scopus_citation_network |>
delete.vertices(which(V(wos_scopus_citation_network)$subfield != 1 & # filter clusters
V(wos_scopus_citation_network)$subfield != 2 &
V(wos_scopus_citation_network)$subfield != 3 &
V(wos_scopus_citation_network)$subfield != 4))
wos_scopus_citation_network_clusters |>
summary()
IGRAPH 60a01fe DN-- 788 2432 --
+ attr: name (v/c), full_name (v/c), subfield (v/n)
nodes_full_data |>
filter(cluster == 1) |>
select(full_name) |>
mutate(full_name = str_extract(full_name, SPC %R% # Regular expressions
one_or_more(WRD) %R%
SPC %R%
one_or_more(or(WRD, ANY_CHAR))),
full_name = str_remove(full_name, OPEN_PAREN %R%
repeated(DGT, 4) %R%
CLOSE_PAREN %R%
one_or_more(or(WRD,ANY_CHAR))),
full_name = str_trim(full_name)) |>
unnest_tokens(output = word, input = full_name) |> # Tokenization
anti_join(stop_words) |> # Removing stop words
filter(word != "doi",
!str_detect(word, "[0-9]")) |> # WoS data
filter(word == str_remove(word, pattern = "model"),
word == str_remove(word, pattern = "software"), # Words removed
word == str_remove(word, pattern = "checking"),
word == str_remove(word, pattern = "lecture"),
word == str_remove(word, pattern = "notes"),
word == str_remove(word, pattern = "management"),
word == str_remove(word, pattern = "bibliometric"),
word == str_remove(word, pattern = "review"),
word == str_remove(word, pattern = "journal")) |>
count(word, sort = TRUE) |>
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) :
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) :
bioinformatics could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
including could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
intelligence could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
programs could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
subseries could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
proceedings could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
programming could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symmetry could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
generation could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
specification could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
temporal could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
oriented could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
properties could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
specifications 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) :
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) :
extensible could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
reduction could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
environment could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
languages could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symbolic could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
applications could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symposium could not be fit on page. It will not be plotted.
nodes_full_data |>
filter(cluster == 2) |>
select(full_name) |>
mutate(full_name = str_extract(full_name, SPC %R% # Regular expressions
one_or_more(WRD) %R%
SPC %R%
one_or_more(or(WRD, ANY_CHAR))),
full_name = str_remove(full_name, OPEN_PAREN %R%
repeated(DGT, 4) %R%
CLOSE_PAREN %R%
one_or_more(or(WRD,ANY_CHAR))),
full_name = str_trim(full_name)) |>
unnest_tokens(output = word, input = full_name) |>
anti_join(stop_words) |>
filter(word != "doi",
!str_detect(word, "[0-9]")) |> # WoS data
filter(word == str_remove(word, pattern = "model"),
word == str_remove(word, pattern = "software"), # Words removed
word == str_remove(word, pattern = "checking"),
word == str_remove(word, pattern = "lecture"),
word == str_remove(word, pattern = "notes"),
word == str_remove(word, pattern = "proceedings")) |>
count(word, sort = TRUE) |>
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) :
intelligence could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symposium could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
incremental could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
interpolants could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
interpolation could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
reachability could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
refinement could not be fit on page. It will not be plotted.
cluster_3 <-
wos_scopus_citation_network |>
delete.vertices(which(V(wos_scopus_citation_network)$subfield != 3))
cluster_3_page_rank <-
cluster_3 |>
set.vertex.attribute(name = "page_rank",
value = page_rank(cluster_3)$vector)
cluster_3_df <-
tibble(name = V(cluster_3_page_rank)$name,
full_name = V(cluster_3_page_rank)$full_name,
page_rank = V(cluster_3_page_rank)$page_rank,
cluster = V(cluster_3_page_rank)$subfield,)
nodes_full_data |>
filter(cluster == 3) |>
select(full_name) |>
mutate(full_name = str_extract(full_name, SPC %R% # Regular expressions
one_or_more(WRD) %R%
SPC %R%
one_or_more(or(WRD, ANY_CHAR))),
full_name = str_remove(full_name, OPEN_PAREN %R%
repeated(DGT, 4) %R%
CLOSE_PAREN %R%
one_or_more(or(WRD,ANY_CHAR))),
full_name = str_trim(full_name)) |>
unnest_tokens(output = word, input = full_name) |>
anti_join(stop_words) |>
filter(word != "doi",
!str_detect(word, "[0-9]")) |> # WoS data
filter(word == str_remove(word, pattern = "model"),
word == str_remove(word, pattern = "software"), # Words removed
word == str_remove(word, pattern = "checking"),
word == str_remove(word, pattern = "lecture"),
word == str_remove(word, pattern = "notes"),
word == str_remove(word, pattern = "proceedings"),
word == str_remove(word, pattern = "computer"),
word == str_remove(word, pattern = "systems"),
word == str_remove(word, pattern = "systemc"))|>
count(word, sort = TRUE) |>
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) :
verification could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
analysis could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
programs could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
conference could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
efficient could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
international could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
testing could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
verifying could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
computing could not be fit on page. It will not be plotted.
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) :
partial could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
predicate could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
smtbased could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
study could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
abstraction could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
abstractions could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
approach could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
automata could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
designs could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
properties could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
smt could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symbolic could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
tool could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
design could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
embedded could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
memory could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
multithreaded could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
safety could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
control could not be fit on page. It will not be plotted.
cluster_4 <-
wos_scopus_citation_network |>
delete.vertices(which(V(wos_scopus_citation_network)$subfield != 4))
cluster_4_page_rank <-
cluster_4 |>
set.vertex.attribute(name = "page_rank",
value = page_rank(cluster_4)$vector)
cluster_4_df <-
tibble(name = V(cluster_4_page_rank)$name,
full_name = V(cluster_4_page_rank)$full_name,
page_rank = V(cluster_4_page_rank)$page_rank,
cluster = V(cluster_4_page_rank)$subfield,)
nodes_full_data |>
filter(cluster == 4) |>
select(full_name) |>
mutate(full_name = str_extract(full_name, SPC %R% # Regular expressions
one_or_more(WRD) %R%
SPC %R%
one_or_more(or(WRD, ANY_CHAR))),
full_name = str_remove(full_name, OPEN_PAREN %R%
repeated(DGT, 4) %R%
CLOSE_PAREN %R%
one_or_more(or(WRD,ANY_CHAR))),
full_name = str_trim(full_name)) |>
unnest_tokens(output = word, input = full_name) |>
anti_join(stop_words) |>
filter(word != "doi",
!str_detect(word, "[0-9]")) |> # WoS data
filter(word == str_remove(word, pattern = "model"),
word == str_remove(word, pattern = "software"), # Words removed
word == str_remove(word, pattern = "checking"),
word == str_remove(word, pattern = "lecture"),
word == str_remove(word, pattern = "notes"),
word == str_remove(word, pattern = "proceedings"),
word == str_remove(word, pattern = "computer"),
word == str_remove(word, pattern = "systems"),
word == str_remove(word, pattern = "systemc")) |>
count(word, sort = TRUE) |>
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) :
combining could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
embedded could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
including could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
intelligence could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
journal could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
subseries could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symbolic could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
parallel could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
probabilistic could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
proving could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
theorem could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
reduction could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
technology could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
automatic could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
cambridge could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
compositional could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
design could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
partial could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
program could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
symposium could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
temporal could not be fit on page. It will not be plotted.
Warning in wordcloud(word, n, random.order = FALSE, max.words = 50, colors = pal) :
university could not be fit on page. It will not be plotted.
write.csv(cluster_1_df, "cluster_1.csv") # Exporting cluster 1
write.csv(cluster_2_df, "cluster_2.csv") # Exporting cluster 2
write.csv(cluster_3_df, "cluster_3.csv") # Exporting cluster 3
Error in is.data.frame(x) : object 'cluster_3_df' not found