Bibliographic Collection

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” ) )

Data loading and Converting

# 匯入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!

Data Overview and Missing Value Checks

# Check dimensions of each dataset
dim(dta)
[1] 7293   53

Part1:Check Missing Value (missingData(dta))

with(bibliometrix::missingData(dta), mandatoryTags) |> knitr::kable(caption="Missing Data Summary")
Missing Data Summary
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

Section 2:Co-Author Analysis: The conceptual structure of a field

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”)

Authors collaboration network

# 計算作者合作網絡矩陣
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              # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
  )

Plot Authors collaboration Network

# 建立輸出資料夾
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
dev.off()
agg_png 
      2 

Centrality and Cluster Analysis-Author

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)
# 檢查是否有未對應成功者
missing <- centrality_df[is.na(centrality_df$cluster), "Author"]
print(missing)
character(0)

University collaboration network

# 計算學校(或大學)合作網絡矩陣
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              # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
  )

Plot University collaboration network

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
dev.off()
agg_png 
      2 

Centrality and Cluster Analysis-Institutions

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)

Country collaboration network

# 計算國家合作網絡矩陣
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              # 統一詞彙表示,避免同一概念因不同表達方式而被分割成不同節點
  )

Plot Country collaboration network

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
dev.off()
agg_png 
      2 
browseURL(png_path)

Centrality and Cluster Analysis-Countries

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)