The dataset consists of bibliographic records retrieved from Scopus on April 22, 2024, using the keywords biped robot.
The search was applied to the Title (TI), Abstract (AB), and Author Keywords (DE) fields to ensure comprehensive retrieval of relevant literature.(Number of documents:8254)
The search was limited to: - Publications up to 2024(Number of documents:8079) - Articles (Number of documents:4709) and Conference paper (Number of documents:2968) - English-language publications
The final dataset comprises 7,293 records, retrieved from the Scopus interface in CSV (Comma-Separated Values) format. The exported file includes complete citation and abstract fields for further processing and analysis.
The search string used was: TITLE-ABS-KEY ( biped AND robot ) AND PUBYEAR > 1970 AND PUBYEAR < 2025 AND ( LIMIT-TO ( DOCTYPE , “cp” ) OR LIMIT-TO ( DOCTYPE , “ar” ) ) AND ( LIMIT-TO ( LANGUAGE , “English” ) )
# 匯入Scopus資料
# Set file paths
#file_path <- "~/Documents/data_Biblio/clean_robot_article_9529.csv" # my mac
file_path <- "C:/Users/chfawu/Documents/scopus_biped robot_7293.csv" # Set file paths(STPI)
# Creates bibliographic data frame
dta <- convert2df(file_path,
dbsource = "scopus", #資料集來源
format = "csv", #格式
remove.duplicates = TRUE #移除重複
)
Converting your scopus collection into a bibliographic dataframe
Done!
Generating affiliation field tag AU_UN from C1: Done!
tag | description | missing_counts | missing_pct | status |
---|---|---|---|---|
AB | Abstract | 0 | 0.00 | Excellent |
DT | Document Type | 0 | 0.00 | Excellent |
LA | Language | 0 | 0.00 | Excellent |
PY | Publication Year | 0 | 0.00 | Excellent |
TI | Title | 0 | 0.00 | Excellent |
TC | Total Citation | 0 | 0.00 | Excellent |
AU | Author | 2 | 0.03 | Good |
SO | Journal | 29 | 0.40 | Good |
C1 | Affiliation | 82 | 1.12 | Good |
CR | Cited References | 265 | 3.63 | Good |
ID | Keywords Plus | 337 | 4.62 | Good |
DI | DOI | 956 | 13.11 | Acceptable |
RP | Corresponding Author | 2716 | 37.24 | Poor |
DE | Keywords | 2716 | 37.24 | Poor |
WC | Science Categories | 7293 | 100.00 | Completely missing |
The function biblioNetwork calculates, starting from a bibliographic data frame, the most frequently used networks: Coupling, Co-citation, Co-occurrences, and Collaboration.
biblioNetwork uses two arguments to define the network to compute:
analysis argument can be “co-citation”, “coupling”, “collaboration”, or “co-occurrences”.
network argument can be “authors”, “references”, “sources”, “countries”, “universities”, “keywords”, “author_keywords”, “titles” and “abstracts”.
i.e. the following code calculates a classical collaboration network:
NetMatrix <- biblioNetwork(M, analysis = “collaboration”, network = “作者、機構、國家”, sep = “;”)
– Authors collaboration (analysis = “collaboration”, network = “authors”) – University collaboration (analysis = “collaboration”, network = universities”) – Country collaboration (analysis = “collaboration”, network = “countries”)
# 計算作者合作網絡矩陣
library(bibliometrix)
dta <- metaTagExtraction(dta, Field = "AU", sep = ";")
NetMatrix_collab_authors <- bibliometrix::biblioNetwork(
dta,
analysis = "collaboration", # 合作分析
network = "authors", # 分析作者網絡
sep = ";", # 使用分隔符號 ";"(依據資料格式)
short = FALSE, # 設定 TRUE,則所有出現頻率低於2的項目會被刪除
shortlabel = TRUE, # 參考文獻的標籤會以簡短格式儲存
remove.terms = NULL, # 通常用於剔除常見但無實質意義的詞語
synonyms = NULL # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
)
# 建立輸出資料夾
output_dir <- "C:/Users/chfawu/Documents/data_Biblio/outputs_biped"
dir.create(output_dir, showWarnings = FALSE, recursive = TRUE)
# 輸出 PNG
png(filename = file.path(output_dir, "Authors_Collaboration_Network.png"),
width = 1600, height = 1200, res = 200)
# 繪製作者合作網絡圖
plot_collab_authors <- networkPlot(
NetMatrix_collab_authors,
normalize = TRUE, # 正規化網絡邊權
weighted = TRUE, # 根據邊的權重(合作次數)展示
n = 40, # 圖形可讀性考量,顯示前40個重要作者
Title = "Authors Collaboration Network",
type = "fruchterman", # 使用 Fruchterman-Reingold 佈局
labelsize = 0.8, # 節點標籤字型大小
size = TRUE, # 節點大小會根據節點的連結強度自動調整
cluster = "louvain", # 適用大型網絡的群集演算法
halo = TRUE
)
# 顯示圖形
plot_collab_authors
$graph
IGRAPH c528b31 UNW- 40 349 --
+ attr: alpha (g/n), ylim (g/n), xlim (g/n), rescale (g/l), asp (g/n),
| layout (g/n), main (g/c), name (v/c), deg (v/n), size (v/n),
| label.cex (v/n), color (v/c), community (v/n), label.dist (v/n),
| frame.color (v/c), label.color (v/c), label.font (v/n), label (v/c),
| weight (e/n), num (e/n), width (e/n), color (e/c), lty (e/n), curved
| (e/l)
+ edges from c528b31 (vertex names):
[1] takanishi a--huang q takanishi a--chen x takanishi a--liu y
[4] takanishi a--hashimoto k takanishi a--yu z takanishi a--zhang w
[7] takanishi a--liu h takanishi a--li q huang q --chen x
+ ... omitted several edges
$graph_pajek
IGRAPH c528408 UNW- 40 349 --
+ attr: name (v/c), deg (v/n), size (v/n), label.cex (v/n), id (v/c),
| weight (e/n), num (e/n)
+ edges from c528408 (vertex names):
[1] takanishi a--huang q takanishi a--chen x takanishi a--liu y
[4] takanishi a--hashimoto k takanishi a--yu z takanishi a--zhang w
[7] takanishi a--liu h takanishi a--li q huang q --chen x
[10] huang q --liu y huang q --zhang j huang q --zhang y
[13] huang q --hashimoto k huang q --li j huang q --yu z
[16] huang q --wang h huang q --li z huang q --zhang w
[19] huang q --li x huang q --wang j huang q --zhang x
+ ... omitted several edges
$cluster_obj
IGRAPH clustering multi level, groups: 5, mod: 0.34
+ groups:
$`1`
[1] "takanishi a" "hashimoto k"
$`2`
[1] "huang q" "chen x" "yu z" "zhang w" "li q"
$`3`
[1] "liu y" "ames ad" "zhao j" "liu c" "wang x" "liu x" "liu h"
[8] "chen y" "zhang c" "zhang z" "wang c"
+ ... omitted several groups/vertices
$cluster_res
vertex cluster btw_centrality clos_centrality pagerank_centrality
1 takanishi a 1 0.648925 0.0109890 0.02771912
8 hashimoto k 1 2.675339 0.0125000 0.03038871
2 huang q 2 4.980489 0.0135135 0.07190331
3 chen x 2 14.509793 0.0138889 0.07449829
12 yu z 2 3.915740 0.0126582 0.06519643
19 zhang w 2 34.020472 0.0151515 0.03301111
34 li q 2 4.772705 0.0126582 0.02191805
4 liu y 3 21.119478 0.0142857 0.04055002
5 ames ad 3 0.000000 0.0111111 0.00495217
14 zhao j 3 16.024466 0.0138889 0.02281239
23 liu c 3 0.765591 0.0128205 0.01088850
26 wang x 3 13.591825 0.0142857 0.01731520
27 liu x 3 28.158369 0.0153846 0.01738723
33 liu h 3 23.579422 0.0142857 0.02168782
35 chen y 3 27.193069 0.0151515 0.01396175
[ reached 'max' / getOption("max.print") -- omitted 25 rows ]
$community_obj
IGRAPH clustering multi level, groups: 5, mod: 0.34
+ groups:
$`1`
[1] "takanishi a" "hashimoto k"
$`2`
[1] "huang q" "chen x" "yu z" "zhang w" "li q"
$`3`
[1] "liu y" "ames ad" "zhao j" "liu c" "wang x" "liu x" "liu h"
[8] "chen y" "zhang c" "zhang z" "wang c"
+ ... omitted several groups/vertices
$layout
[,1] [,2]
[1,] -0.24854301 1.0000000
[2,] 0.51004589 0.3671483
[3,] 0.32383159 0.2691447
[4,] -0.22940289 -0.1691771
[5,] -1.00000000 -1.0000000
[6,] 0.38295635 -0.3070539
[7,] -0.00990142 0.1834270
[8,] -0.29156637 0.7624803
[9,] 0.58840293 -0.2342334
[10,] 0.73196700 -0.2237430
[11,] 0.50957725 -0.0899346
[12,] 0.21162457 0.4424861
[13,] 0.48068923 -0.3779862
[14,] -0.36435589 -0.0125612
[15,] 0.87459724 -0.2877410
[16,] 0.72402739 -0.4548477
[17,] 0.55607376 -0.5577218
[18,] -0.12861047 0.1122231
[19,] 0.15314849 0.2886610
[20,] 0.77785758 -0.0932479
[21,] -0.29226774 0.3778855
[22,] 0.71844591 -0.3549151
[23,] -0.45409256 -0.6058586
[24,] 0.61062429 -0.0409946
[25,] 0.57961058 -0.4187097
[26,] -0.38161530 -0.2733046
[27,] -0.42082399 0.0998806
[28,] 0.24208217 -0.4820879
[29,] 0.48099941 -0.2131990
[30,] 0.27887382 -0.3030397
[31,] 0.31864976 -0.1676435
[32,] 0.32872990 -0.6090608
[33,] -0.45551958 -0.1336547
[34,] 0.31805881 0.5859069
[35,] -0.53579718 -0.3316986
[36,] -0.27370714 -0.4558811
[37,] -0.62379935 -0.1150911
[ 達到了 getOption("max.print") -- 省略最後 3 列 ]]
$S
10163 x 10163 sparse Matrix of class "dsCMatrix"
takanishi a 0.008064516 0.000354484 0.00028132 0.00731433 9.83478e-05 . .
huang q 0.000354484 0.010989011 0.00587784 . 6.70062e-04 . 0.00014652
takanishi a . . 0.006997154 . . . . . . . 0.000403226 . .
huang q 0.000627943 0.000955566 0.000808016 0.00210084 . . . . . . 0.009157509 . .
takanishi a . . . . . . . . . . . . ......
huang q 0.0001998 . . . . . 0.000228938 0.000701426 0.000233809 . . . ......
..............................
........suppressing 10131 columns and 10160 rows in show(); maybe adjust options(max.print=, width=)
..............................
zykov v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......
$nodeDegree
node degree
liu y liu y 1.000000
zhang j zhang j 0.901478
zhang y zhang y 0.866995
wang z wang z 0.832512
chen x chen x 0.822660
li j li j 0.788177
li y li y 0.783251
li z li z 0.704433
wang y wang y 0.694581
huang q huang q 0.669951
takanishi a takanishi a 0.640394
wang j wang j 0.596059
zhang x zhang x 0.591133
wang h wang h 0.571429
zhang w zhang w 0.551724
wang x wang x 0.536946
wang w wang w 0.527094
zhang l zhang l 0.522167
yu z yu z 0.497537
zhao j zhao j 0.492611
wang s wang s 0.492611
hashimoto k hashimoto k 0.487685
chen y chen y 0.477833
liu j liu j 0.472906
wang c wang c 0.472906
wang l wang l 0.467980
liu x liu x 0.467980
zhao y zhao y 0.458128
zhang h zhang h 0.448276
zhang c zhang c 0.448276
li x li x 0.443350
liu h liu h 0.438424
zhang z zhang z 0.433498
liu z liu z 0.418719
ames ad ames ad 0.413793
zhang s zhang s 0.389163
liu c liu c 0.379310
[ reached 'max' / getOption("max.print") -- omitted 10126 rows ]
$params
params values
1 normalize TRUE
2 n 40
3 Title Authors Collaboration Network
4 type fruchterman
5 label TRUE
6 labelsize 0.8
7 label.cex FALSE
8 label.color FALSE
9 halo TRUE
10 cluster louvain
11 community.repulsion 0.1
12 size 20
13 size.cex TRUE
14 curved FALSE
15 noloops TRUE
16 remove.multiple TRUE
17 remove.isolates FALSE
18 weighted TRUE
19 edgesize 1
20 edges.min 0
21 alpha 0.5
22 verbose TRUE
agg_png
2
library(igraph)
library(dplyr)
library(flextable)
library(officer)
# 建 igraph 網絡物件
g_auth <- graph_from_adjacency_matrix(NetMatrix_collab_authors, mode = "undirected", weighted = TRUE)
# 取介數中心性前 40 節點
btw_all <- betweenness(g_auth, normalized = TRUE)
top40 <- order(btw_all, decreasing = TRUE)[1:40]
g40 <- induced_subgraph(g_auth, vids = top40)
top40_names <- V(g40)$name
# 計算中心性指標
deg40 <- degree(g40, normalized = TRUE)
btw40 <- betweenness(g40, normalized = TRUE)
cls40 <- closeness(g40, normalized = TRUE)
eig40 <- eigen_centrality(g40)$vector
pr40 <- page_rank(g40)$vector
centrality_df <- data.frame(
Author = top40_names,
Degree = deg40,
Betweenness = btw40,
Closeness = cls40,
Eigenvector = eig40,
PageRank = pr40,
row.names = NULL
)
# 使用 Louvain 方法進行群集偵測
cl_igraph <- cluster_louvain(g_auth)
membership_vec <- membership(cl_igraph)
# 加入群集欄(不做 toupper,名稱直接比對)
centrality_df$cluster <- membership_vec[centrality_df$Author]
# 排序表格
centrality_df <- centrality_df[order(-centrality_df$Betweenness), ]
# 匯出為 APA Word 表格
timestamp <- format(Sys.time(), "%Y-%m-%d_%H%M")
doc <- read_docx()
ft <- flextable(centrality_df) %>%
theme_booktabs() %>%
set_caption("Table 1. Top 40 Authors in the Collaboration Network: Centrality and Cluster Analysis") %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
fontsize(size = 10, part = "all") %>%
add_footer_lines(values = c(
"**註:本表排序依據為 Betweenness 中心性,代表節點在網絡中作為資訊橋梁之能力。**",
"Degree: 合作連結數,反映合作廣度。",
"Betweenness: 節點在合作網絡中橋接其他節點的能力。",
"Closeness: 與所有其他節點的平均距離倒數,反映資訊傳播效率。",
"Eigenvector: 與高影響力節點合作越多,得分越高。",
"PageRank: 根據整體網絡結構所計算的影響力指標。",
"Cluster: 根據 Louvain 方法對整體網絡進行社群偵測。"
))
doc <- body_add_flextable(doc, ft)
# 儲存 Word 檔
doc_path <- file.path(output_dir, paste0("Authors_Centrality_Cluster_Top40_", timestamp, ".docx"))
print(doc, target = doc_path)
browseURL(doc_path)
character(0)
# 計算學校(或大學)合作網絡矩陣
library(bibliometrix)
dta <- metaTagExtraction(dta, Field = "AU_UN", sep = ";") #每位合著者和通訊作者的所屬大學
NetMatrix_collab_institutions <- bibliometrix::biblioNetwork(
dta,
analysis = "collaboration", # 合作分析
network = "universities", # 或是可選分析"institutions"機構合作
sep = ";", # 使用分隔符號 ";"(依據資料格式)
short = FALSE, # 設定 TRUE,則所有出現頻率低於2的項目會被刪除
shortlabel = TRUE, # 參考文獻的標籤會以簡短格式儲存
remove.terms = NULL, # 通常用於剔除常見但無實質意義的詞語
synonyms = NULL # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
)
output_dir <- "C:/Users/chfawu/Documents/data_Biblio/outputs_biped"
dir.create(output_dir, showWarnings = FALSE, recursive = TRUE)
png(filename = file.path(output_dir, "Institutions_Collaboration_Network_Top50.png"),
width = 1800, height = 1400, res = 200)
networkPlot(
NetMatrix_collab_institutions,
normalize = TRUE,
weighted = TRUE, # 合作強度最高
n = 50, # 50個機構
Title = "Top 50 Institutions Collaboration Network",
type = "fruchterman",
labelsize = 0.7,
size = TRUE, # TRUE表示節點大小依照節點強度動態調整
cluster = "louvain",
halo = TRUE
)
$graph
IGRAPH d25bbe6 UNW- 50 106 --
+ attr: alpha (g/n), ylim (g/n), xlim (g/n), rescale (g/l), asp (g/n),
| layout (g/n), main (g/c), name (v/c), deg (v/n), size (v/n),
| label.cex (v/n), color (v/c), community (v/n), label.dist (v/n),
| frame.color (v/c), label.color (v/c), label.font (v/n), label (v/c),
| weight (e/n), num (e/n), width (e/n), color (e/c), lty (e/n), curved
| (e/l)
+ edges from d25bbe6 (vertex names):
[1] waseda university--osaka university
[2] waseda university--tohoku university
[3] waseda university--tokyo institute of technology
+ ... omitted several edges
$graph_pajek
IGRAPH d25b6f2 UNW- 50 106 --
+ attr: name (v/c), deg (v/n), size (v/n), label.cex (v/n), id (v/c),
| weight (e/n), num (e/n)
+ edges from d25b6f2 (vertex names):
[1] waseda university --osaka university
[2] waseda university --tohoku university
[3] waseda university --tokyo institute of technology
[4] waseda university --japan
[5] school of mechatronical engineering--tsinghua university
[6] school of mechatronical engineering--carnegie mellon university
[7] school of mechatronical engineering--beijing institute of technology
+ ... omitted several edges
$cluster_obj
IGRAPH clustering multi level, groups: 8, mod: 0.53
+ groups:
$`1`
[1] "waseda university" "keio university" "osaka university"
[4] "tohoku university" "kyoto university" "university of tokyo"
$`2`
[1] "school of mechatronical engineering" "beijing institute of technology"
$`3`
[1] "harbin institute of technology" "shandong university"
[3] "japan" "shenyang institute of automation"
+ ... omitted several groups/vertices
$cluster_res
vertex cluster btw_centrality clos_centrality
1 waseda university 1 6.43170 0.00558659
5 keio university 1 2.07302 0.00602410
8 osaka university 1 12.75079 0.00555556
9 tohoku university 1 33.84031 0.00649351
12 kyoto university 1 46.25152 0.00529101
16 university of tokyo 1 44.00642 0.00724638
2 school of mechatronical engineering 2 25.87024 0.00757576
21 beijing institute of technology 2 14.36190 0.00625000
3 harbin institute of technology 3 87.85498 0.00649351
19 shandong university 3 7.76710 0.00442478
33 japan 3 49.55317 0.00751880
34 shenyang institute of automation 3 18.14848 0.00465116
41 ritsumeikan university 3 5.83333 0.00436681
42 harvard university 3 158.55380 0.00819672
49 china 3 92.57576 0.00735294
pagerank_centrality
1 0.0212392
5 0.0133938
8 0.0215961
9 0.0201137
12 0.0209283
16 0.0170965
2 0.0250986
21 0.0223492
3 0.0154068
19 0.0130458
33 0.0394238
34 0.0276575
41 0.0123221
42 0.0175533
49 0.0252496
[ reached 'max' / getOption("max.print") -- omitted 35 rows ]
$community_obj
IGRAPH clustering multi level, groups: 8, mod: 0.53
+ groups:
$`1`
[1] "waseda university" "keio university" "osaka university"
[4] "tohoku university" "kyoto university" "university of tokyo"
$`2`
[1] "school of mechatronical engineering" "beijing institute of technology"
$`3`
[1] "harbin institute of technology" "shandong university"
[3] "japan" "shenyang institute of automation"
+ ... omitted several groups/vertices
$layout
[,1] [,2]
[1,] 0.24310526 0.3665069
[2,] 0.40385618 -0.5003376
[3,] 0.55771365 -0.0419377
[4,] -0.14888998 -0.6092417
[5,] 0.50941376 0.3526909
[6,] 0.49201263 -0.7845998
[7,] -0.28875907 -0.6828594
[8,] 0.30039772 0.2957687
[9,] 0.07739937 0.3185187
[10,] 0.38933107 -0.9579517
[11,] -0.57732744 -0.2786376
[12,] 0.44147463 0.2229503
[13,] -0.22387650 -0.5339043
[14,] -0.89533526 1.0000000
[15,] 0.64586987 0.1547683
[16,] 0.26885916 0.0923079
[17,] 0.44424605 0.0503948
[18,] -0.40001511 -0.4737752
[19,] 0.85498253 -0.0507508
[20,] 0.24608365 -0.9054688
[21,] 0.57470302 -0.4472712
[22,] -0.17222738 -0.7474854
[23,] -0.72891304 -0.1179648
[24,] -0.22807432 -0.8563285
[25,] -0.52557382 -0.0228252
[26,] -0.09289997 -0.8185897
[27,] -0.77782956 -0.6447325
[28,] -0.59050153 -0.7757518
[29,] 0.26310801 -0.7389852
[30,] -0.66597711 -0.1765423
[31,] 0.00852974 -0.5680235
[32,] -0.49429404 -0.6091927
[33,] 0.58113116 -0.1632384
[34,] 0.83983528 -0.1809494
[35,] -0.68073687 0.1365316
[36,] -0.74240863 -0.9603261
[37,] -0.69205312 0.3535665
[ 達到了 getOption("max.print") -- 省略最後 13 列 ]]
$S
2187 x 2187 sparse Matrix of class "dsCMatrix"
waseda university 0.0126582 . . . . . . 0.00022604
school of mechatronical engineering . 0.0208333 . 0.000315657 . . . .
waseda university 0.00097371 . . . . . . . . . 0.000275179 .
school of mechatronical engineering . . . . . 0.000359195 . . . . . .
waseda university . 0.000527426 . . . . . . . . . . . ......
school of mechatronical engineering . . . . . 0.00416667 . . . . . . . ......
..............................
........suppressing 2154 columns and 2184 rows in show(); maybe adjust options(max.print=, width=)
..............................
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . . . .
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . . . .
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . . . .
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . . . .
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . . . .
zhejiang university-university of illinois urbana-champaign institute (zjui) . . . ......
$nodeDegree
node
tsinghua university tsinghua university
carnegie mellon university carnegie mellon university
university of michigan university of michigan
southern university of science and technology southern university of science and technology
harbin institute of technology harbin institute of technology
tokyo institute of technology tokyo institute of technology
zhejiang university zhejiang university
university of science and technology of china university of science and technology of china
university of tokyo university of tokyo
istituto italiano di tecnologia istituto italiano di tecnologia
japan japan
waseda university waseda university
school of mechatronical engineering school of mechatronical engineering
university of california university of california
guangdong university of technology guangdong university of technology
shanghai jiao tong university shanghai jiao tong university
massachusetts institute of technology massachusetts institute of technology
shenyang institute of automation shenyang institute of automation
tohoku university tohoku university
south china university of technology south china university of technology
university of tehran university of tehran
university of notre dame university of notre dame
university of tsukuba university of tsukuba
max planck institute for intelligent systems max planck institute for intelligent systems
shenzhen institutes of advanced technology shenzhen institutes of advanced technology
northeastern university northeastern university
kyoto university kyoto university
southeast university southeast university
seoul national university seoul national university
delft university of technology delft university of technology
the chinese university of hong kong the chinese university of hong kong
nagoya university nagoya university
beijing jiaotong university beijing jiaotong university
university of hamburg university of hamburg
georgia institute of technology georgia institute of technology
osaka university osaka university
shandong university shandong university
degree
tsinghua university 1.000000
carnegie mellon university 0.951220
university of michigan 0.926829
southern university of science and technology 0.780488
harbin institute of technology 0.756098
tokyo institute of technology 0.731707
zhejiang university 0.707317
university of science and technology of china 0.682927
university of tokyo 0.658537
istituto italiano di tecnologia 0.585366
japan 0.585366
waseda university 0.560976
school of mechatronical engineering 0.560976
university of california 0.560976
guangdong university of technology 0.536585
shanghai jiao tong university 0.536585
massachusetts institute of technology 0.536585
shenyang institute of automation 0.512195
tohoku university 0.463415
south china university of technology 0.463415
university of tehran 0.463415
university of notre dame 0.463415
university of tsukuba 0.439024
max planck institute for intelligent systems 0.439024
shenzhen institutes of advanced technology 0.439024
northeastern university 0.414634
kyoto university 0.414634
southeast university 0.414634
seoul national university 0.414634
delft university of technology 0.414634
the chinese university of hong kong 0.414634
nagoya university 0.390244
beijing jiaotong university 0.390244
university of hamburg 0.390244
georgia institute of technology 0.390244
osaka university 0.365854
shandong university 0.365854
[ reached 'max' / getOption("max.print") -- omitted 2150 rows ]
$params
params values
1 normalize TRUE
2 n 50
3 Title Top 50 Institutions Collaboration Network
4 type fruchterman
5 label TRUE
6 labelsize 0.7
7 label.cex FALSE
8 label.color FALSE
9 halo TRUE
10 cluster louvain
11 community.repulsion 0.1
12 size 20
13 size.cex TRUE
14 curved FALSE
15 noloops TRUE
16 remove.multiple TRUE
17 remove.isolates FALSE
18 weighted TRUE
19 edgesize 1
20 edges.min 0
21 alpha 0.5
22 verbose TRUE
agg_png
2
library(igraph)
library(dplyr)
library(flextable)
library(officer)
# 建立 igraph 網絡
g_inst <- graph_from_adjacency_matrix(NetMatrix_collab_institutions, mode = "undirected", weighted = TRUE)
# Top 50 機構(依 Betweenness)
btw_all <- betweenness(g_inst, normalized = TRUE)
top50 <- order(btw_all, decreasing = TRUE)[1:50]
g50 <- induced_subgraph(g_inst, vids = top50)
top50_names <- V(g50)$name
# 中央性指標
deg50 <- degree(g50, normalized = TRUE)
btw50 <- betweenness(g50, normalized = TRUE)
cls50 <- closeness(g50, normalized = TRUE)
eig50 <- eigen_centrality(g50)$vector
pr50 <- page_rank(g50)$vector
centrality_df <- data.frame(
Institution = top50_names,
Degree = deg50,
Betweenness = btw50,
Closeness = cls50,
Eigenvector = eig50,
PageRank = pr50,
row.names = NULL
)
# 群集分析(全圖)
cl_inst <- cluster_louvain(g_inst)
membership_vec <- membership(cl_inst)
centrality_df$cluster <- membership_vec[centrality_df$Institution]
# 排序
centrality_df <- centrality_df[order(-centrality_df$Betweenness), ]
# Word 匯出(APA 格式)
timestamp <- format(Sys.time(), "%Y-%m-%d_%H%M")
doc <- read_docx()
ft <- flextable(centrality_df) %>%
theme_booktabs() %>%
set_caption("Table 2. Top 50 Institutions in the Collaboration Network: Centrality and Cluster Analysis") %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
fontsize(size = 10, part = "all") %>%
add_footer_lines(values = c(
"**註:本表排序依據為 Betweenness 中心性,代表節點在網絡中作為資訊橋梁之能力。**",
"Degree: 機構的合作連結數,反映合作廣度。",
"Betweenness: 機構在網絡中的中介程度。",
"Closeness: 與所有其他機構的平均距離倒數,反映資訊傳遞效率。",
"Eigenvector: 連結到其他高影響力機構的程度。",
"PageRank: 根據網絡結構所計算的整體影響力指標。",
"Cluster: 根據 Louvain 方法對整體網絡進行社群偵測的結果。"
))
doc <- body_add_flextable(doc, ft)
doc_path <- file.path(output_dir, paste0("Institutions_Centrality_Cluster_Top50_", timestamp, ".docx"))
print(doc, target = doc_path)
browseURL(doc_path)
# 計算國家合作網絡矩陣
library(bibliometrix)
dta <- metaTagExtraction(dta, Field = "AU_CO", sep = ";") #共同作者所屬國家
NetMatrix_collab_countries <- bibliometrix::biblioNetwork(
dta,
analysis = "collaboration", # 合作分析
network = "countries", # 分析國家合作
sep = ";", # 使用分隔符號 ";"(依據資料格式)
short = FALSE, # 設定 TRUE,則所有出現頻率低於2的項目會被刪除
shortlabel = TRUE, # 參考文獻的標籤會以簡短格式儲存
remove.terms = NULL, # 通常用於剔除常見但無實質意義的詞語
synonyms = NULL # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
)
output_dir <- "C:/Users/chfawu/Documents/data_Biblio/outputs_biped"
dir.create(output_dir, showWarnings = FALSE, recursive = TRUE)
png_path <- file.path(output_dir, "Countries_Collaboration_Network_Top50.png")
png(filename = png_path,
width = 1800, height = 1400, res = 200)
networkPlot(
NetMatrix_collab_countries,
normalize = TRUE,
weighted = TRUE,
n = 50, # Top 50 國家
Title = "Top 50 Countries Collaboration Network",
type = "fruchterman",
labelsize = 0.7,
size = TRUE, # 節點大小會根據節點的連結強度自動調整
cluster = "louvain",
halo = TRUE
)
$graph
IGRAPH d9dfd27 UNW- 50 277 --
+ attr: alpha (g/n), ylim (g/n), xlim (g/n), rescale (g/l), asp (g/n),
| layout (g/n), main (g/c), name (v/c), deg (v/n), size (v/n),
| label.cex (v/n), color (v/c), community (v/n), label.dist (v/n),
| frame.color (v/c), label.color (v/c), label.font (v/n), label (v/c),
| weight (e/n), num (e/n), width (e/n), color (e/c), lty (e/n), curved
| (e/l)
+ edges from d9dfd27 (vertex names):
[1] china--japan china--usa china--korea
[4] china--germany china--france china--india
[7] china--iran china--italy china--portugal
+ ... omitted several edges
$graph_pajek
IGRAPH d9df7c2 UNW- 50 277 --
+ attr: name (v/c), deg (v/n), size (v/n), label.cex (v/n), id (v/c),
| weight (e/n), num (e/n)
+ edges from d9df7c2 (vertex names):
[1] china--japan china--usa china--korea
[4] china--germany china--france china--india
[7] china--iran china--italy china--portugal
[10] china--united kingdom china--canada china--spain
[13] china--mexico china--singapore china--belgium
[16] china--australia china--netherlands china--hong kong
[19] china--malaysia china--romania china--pakistan
+ ... omitted several edges
$cluster_obj
IGRAPH clustering multi level, groups: 4, mod: 0.15
+ groups:
$`1`
[1] "china" "united kingdom" "canada" "singapore"
[5] "australia" "hong kong" "malaysia" "pakistan"
[9] "new zealand" "oman"
$`2`
[1] "japan" "usa" "korea"
[4] "france" "india" "iran"
[7] "italy" "mexico" "turkey"
[10] "netherlands" "brazil" "indonesia"
+ ... omitted several groups/vertices
$cluster_res
vertex cluster btw_centrality clos_centrality pagerank_centrality
1 china 1 101.65698 0.00980392 0.13068490
11 united kingdom 1 53.46331 0.00925926 0.04569712
13 canada 1 29.16364 0.00862069 0.03958069
16 singapore 1 21.71621 0.00854701 0.02499641
19 australia 1 62.58699 0.01063830 0.01496349
21 hong kong 1 5.03547 0.00826446 0.01686070
22 malaysia 1 28.71006 0.00892857 0.00597434
31 pakistan 1 14.46133 0.00900901 0.00575013
37 new zealand 1 4.81111 0.00769231 0.00526947
41 oman 1 7.87568 0.00769231 0.00539075
2 japan 2 61.07210 0.00990099 0.07839525
3 usa 2 149.02210 0.01020408 0.13370016
4 korea 2 31.87112 0.00900901 0.02556117
6 france 2 126.64553 0.01041667 0.04877024
7 india 2 29.99262 0.00970874 0.01166803
[ reached 'max' / getOption("max.print") -- omitted 35 rows ]
$community_obj
IGRAPH clustering multi level, groups: 4, mod: 0.15
+ groups:
$`1`
[1] "china" "united kingdom" "canada" "singapore"
[5] "australia" "hong kong" "malaysia" "pakistan"
[9] "new zealand" "oman"
$`2`
[1] "japan" "usa" "korea"
[4] "france" "india" "iran"
[7] "italy" "mexico" "turkey"
[10] "netherlands" "brazil" "indonesia"
+ ... omitted several groups/vertices
$layout
[,1] [,2]
[1,] 0.4598418 -0.1069662
[2,] -0.3542273 0.1012274
[3,] -0.2822249 0.2146969
[4,] -0.2314921 0.0775188
[5,] -0.2778600 -0.5219665
[6,] -0.2505136 0.2978709
[7,] 0.0921397 0.3318233
[8,] 0.1286140 0.1733250
[9,] -0.0677222 0.1258151
[10,] -0.4338051 -0.6393245
[11,] 0.1848743 -0.1569383
[12,] -0.3889811 -0.3281904
[13,] 0.4247359 0.0909290
[14,] -0.2299334 -0.4127434
[15,] -0.1826527 -0.0839690
[16,] 0.5699274 -0.2085349
[17,] -0.2459169 0.3955116
[18,] -0.0738338 -0.3577976
[19,] 0.5971515 -0.0279236
[20,] 0.0193560 0.4022440
[21,] 0.5023125 -0.3821380
[22,] 0.8778770 -0.2417628
[23,] -0.6461935 0.0182057
[24,] -0.6506254 -0.6162423
[25,] 0.7569145 0.7355791
[26,] -0.6728559 0.2508065
[27,] -0.6379230 0.6273798
[28,] -0.1062333 0.5050460
[29,] 0.2809743 -0.6746729
[30,] -0.3781944 -0.7469567
[31,] 0.9762033 -0.0257111
[32,] -0.7010830 -0.3582243
[33,] -0.5323565 -0.4209459
[34,] -0.2207268 0.6374961
[35,] -0.8546467 -0.2802498
[36,] -0.7707143 -0.4905999
[37,] 1.0000000 -0.3146669
[ 達到了 getOption("max.print") -- 省略最後 13 列 ]]
$S
80 x 80 sparse Matrix of class "dsCMatrix"
china 0.000601323 2.55562e-05 3.17962e-05 1.36046e-05 3.17321e-05 2.70055e-05 2.516e-06
china 5.20626e-06 4.27607e-05 4.48748e-06 0.000159174 . 0.000186617 5.61984e-06
china 5.89532e-06 0.00016837 . 1.46664e-05 0.000145775 3.00661e-05 . 0.000426393
china 1.50331e-05 . . 2.00441e-05 . . . . . 6.68137e-05 2.73329e-05 0.00010022 ......
..............................
........suppressing 46 columns and 78 rows in show(); maybe adjust options(max.print=, width=)
..............................
papua new guinea . . . . . . . 0.004329 . . . . . . . . . . . . . . . . . . . . . . . . .
papua new guinea . ......
$nodeDegree
node degree
usa usa 1.000000
germany germany 0.886364
china china 0.750000
france france 0.704545
united kingdom united kingdom 0.681818
japan japan 0.659091
italy italy 0.659091
spain spain 0.613636
canada canada 0.500000
switzerland switzerland 0.477273
mexico mexico 0.386364
singapore singapore 0.386364
korea korea 0.363636
iran iran 0.363636
australia australia 0.363636
netherlands netherlands 0.340909
india india 0.295455
belgium belgium 0.295455
serbia serbia 0.272727
poland poland 0.272727
austria austria 0.272727
turkey turkey 0.250000
denmark denmark 0.250000
thailand thailand 0.227273
portugal portugal 0.204545
hong kong hong kong 0.204545
malaysia malaysia 0.204545
brazil brazil 0.204545
romania romania 0.204545
norway norway 0.204545
sweden sweden 0.204545
hungary hungary 0.204545
indonesia indonesia 0.181818
greece greece 0.181818
israel israel 0.181818
slovenia slovenia 0.181818
pakistan pakistan 0.159091
[ reached 'max' / getOption("max.print") -- omitted 43 rows ]
$params
params values
1 normalize TRUE
2 n 50
3 Title Top 50 Countries Collaboration Network
4 type fruchterman
5 label TRUE
6 labelsize 0.7
7 label.cex FALSE
8 label.color FALSE
9 halo TRUE
10 cluster louvain
11 community.repulsion 0.1
12 size 20
13 size.cex TRUE
14 curved FALSE
15 noloops TRUE
16 remove.multiple TRUE
17 remove.isolates FALSE
18 weighted TRUE
19 edgesize 1
20 edges.min 0
21 alpha 0.5
22 verbose TRUE
agg_png
2
library(igraph)
library(dplyr)
library(flextable)
library(officer)
# 建立 igraph 對象
g_country <- graph_from_adjacency_matrix(NetMatrix_collab_countries, mode = "undirected", weighted = TRUE)
# Top 50 國家(依 Betweenness)
btw_all <- betweenness(g_country, normalized = TRUE)
top50 <- order(btw_all, decreasing = TRUE)[1:50]
g50 <- induced_subgraph(g_country, vids = top50)
top50_names <- V(g50)$name
# 計算中央性指標
deg50 <- degree(g50, normalized = TRUE)
btw50 <- betweenness(g50, normalized = TRUE)
cls50 <- closeness(g50, normalized = TRUE)
eig50 <- eigen_centrality(g50)$vector
pr50 <- page_rank(g50)$vector
centrality_df <- data.frame(
Country = top50_names,
Degree = deg50,
Betweenness = btw50,
Closeness = cls50,
Eigenvector = eig50,
PageRank = pr50,
row.names = NULL
)
# Louvain 群集分析(全圖)
cl_country <- cluster_louvain(g_country)
membership_vec <- membership(cl_country)
centrality_df$cluster <- membership_vec[centrality_df$Country]
# 排序 + APA Word 輸出
centrality_df <- centrality_df[order(-centrality_df$Betweenness), ]
timestamp <- format(Sys.time(), "%Y-%m-%d_%H%M")
doc <- read_docx()
ft <- flextable(centrality_df) %>%
theme_booktabs() %>%
set_caption("Table 3. Top 50 Countries in the Collaboration Network: Centrality and Cluster Analysis") %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
fontsize(size = 10, part = "all") %>%
add_footer_lines(values = c(
"**註:本表排序依據為 Betweenness 中心性,代表節點在網絡中作為資訊橋梁之能力。**",
"Degree: 國家的合作連結數,反映合作廣度。",
"Betweenness: 國家在網絡中的中介程度。",
"Closeness: 與所有其他國家的平均距離倒數。",
"Eigenvector: 與高影響力國家合作的程度。",
"PageRank: 結合網絡結構的整體影響力。",
"Cluster: 根據 Louvain 方法對整體網絡進行社群偵測的結果。"
))
doc <- body_add_flextable(doc, ft)
doc_path <- file.path(output_dir, paste0("Countries_Centrality_Cluster_Top50_", timestamp, ".docx"))
print(doc, target = doc_path)
browseURL(doc_path)