Skip to content

Commit

Permalink
添加开发者 Github 或主页链接
Browse files Browse the repository at this point in the history
  • Loading branch information
XiangyunHuang committed Feb 5, 2024
1 parent 35a2f9c commit 1e00f4d
Showing 1 changed file with 32 additions and 38 deletions.
70 changes: 32 additions & 38 deletions analyze-network-data.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -219,34 +219,25 @@ cran_dev <- subset(pdb,
select = c("Package", "Maintainer")
) |>
transform(Maintainer = gsub(
x = Maintainer,
pattern = '(<([^<>]*)>)|(")',
replacement = ""
x = Maintainer, pattern = '(<([^<>]*)>)|(")', replacement = ""
)) |>
transform(Maintainer = gsub(
x = Maintainer,
pattern = "(R-core)|(R Core Team)",
replacement = "CRAN Team"
x = Maintainer, pattern = "(R-core)|(R Core Team)", replacement = "CRAN Team"
)) |>
transform(Maintainer = gsub(
x = Maintainer,
pattern = "(S. M. Iacus)|(Stefano M.Iacus)|(Stefano Maria Iacus)",
replacement = "Stefano M. Iacus"
)) |>
transform(Maintainer = gsub(
x = Maintainer,
pattern = "(Toby Hocking)",
x = Maintainer, pattern = "(Toby Hocking)",
replacement = "Toby Dylan Hocking"
)) |>
transform(Maintainer = gsub(
x = Maintainer,
pattern = "(John M Chambers)",
replacement = "John Chambers"
x = Maintainer, pattern = "(John M Chambers)", replacement = "John Chambers"
))
cran_dev <- aggregate(data = cran_dev, Package ~ Maintainer, FUN = function(x) length(unique(x)))
cran_dev <- cran_dev[order(cran_dev$Package, decreasing = TRUE), ]
knitr::kable(head(cran_dev, ceiling(nrow(cran_dev) / 2)),
col.names = c("团队成员", "R 包数量"), row.names = FALSE
)
Expand Down Expand Up @@ -289,10 +280,8 @@ rstudio_dev <- subset(pdb,
select = c("Package", "Maintainer")
) |>
transform(Maintainer = extract_maintainer(Maintainer))
rstudio_dev <- aggregate(data = rstudio_dev, Package ~ Maintainer, FUN = function(x) length(unique(x)))
rstudio_dev <- rstudio_dev[order(rstudio_dev$Package, decreasing = TRUE), ]
knitr::kable(head(rstudio_dev, ceiling(nrow(rstudio_dev) / 2)),
col.names = c("团队成员", "R 包数量"), row.names = FALSE
)
Expand Down Expand Up @@ -329,41 +318,41 @@ ggplot(data = pdb_ctb[pdb_ctb$Package >= 20, ]) +

这些开发者的主页和主要的 R 社区贡献如下:

1. [Dirk Eddelbuettel](https://dirk.eddelbuettel.com/) 维护了 Rcpp、 RcppEigen 等流行的 R 包,通过 Rcpp 包将很多优秀的 C++ 库引入 R 语言社区。
2. [Stéphane Laurent](https://github.com/stla/) 维护了很多与 shiny 、htmlwidgets 相关的 R 包,比如 rAmCharts4 包。
1. [Dirk Eddelbuettel](https://dirk.eddelbuettel.com/) 维护了 Rcpp、RcppEigen 等流行的 R 包,通过 Rcpp 包将很多优秀的 C++ 库引入 R 语言社区。
2. [Stéphane Laurent](https://github.com/stla/) 维护了很多与 shiny、htmlwidgets 相关的 R 包,比如 rAmCharts4 包。
3. [Gábor Csárdi](https://github.com/gaborcsardi/) 维护了 igraph 包以及大量帮助 R 包开发的基础设施,RStudio 雇员。
4. [Hadley Wickham](https://github.com/hadley/) 维护了 ggplot2、dplyr、devtools 等流行的 R 包,RStudio 雇员。
5. [Jeroen Ooms](https://github.com/jeroen/) 维护了 magick、 curl 以及大量帮助 R 包开发的基础设施。
5. [Jeroen Ooms](https://github.com/jeroen/) 维护了 magick、curl 以及大量帮助 R 包开发的基础设施。
6. [Scott Chamberlain](https://scottchamberlain.info/) 维护了很多与 HTTP/Web 相关的 R 包,rOpenSci 联合创始人。
7. [Robin K. S. Hankin](https://github.com/RobinHankin/) 维护了很多与贝叶斯、多元统计相关的 R 包。
8. [Henrik Bengtsson](https://github.com/HenrikBengtsson/) 维护了 future 和 parallelly 等流行的 R 包,在并行计算方面有很多贡献。
9. Jan Wijffels 维护了很多与自然语言处理、图像识别相关的 R 包,比如 udpipe 、BTM 和 word2vec 等包,[Bnosac](https://bnosac.be/) 团队成员。
10. Kurt Hornik 参与维护 R 软件代码并许多与自然语言处理相关的 R 包,CRAN 核心团队成员。
11. Martin Maechler 维护了 Matrix 包,CRAN 核心团队成员。
9. [Jan Wijffels](https://github.com/jwijffels) 维护了很多与自然语言处理、图像识别相关的 R 包,比如 udpipe 、BTM 和 word2vec 等包,[Bnosac](https://bnosac.be/) 团队成员。
10. [Kurt Hornik](https://statmath.wu.ac.at/~hornik/) 参与维护 R 软件代码并许多与自然语言处理相关的 R 包,R 核心团队成员。
11. [Martin Maechler](https://github.com/mmaechler) 维护了 Matrix 包,R 核心团队成员。
12. [Max Kuhn](https://github.com/topepo) 维护了 tidymodels 等包,RStudio 雇员。
13. [Bob Rudis](https://rud.is/) 维护了一些与 ggplot2 相关的 R 包,如 ggalt、hrbrthemes 和 statebins 等。
14. Kartikeya Bolar 维护了很多统计与 shiny 结合的 R 包,比如方差分析、逻辑回归、列联表、聚类分析等。
14. [Kartikeya Bolar](https://kartikeyabolar.r-universe.dev/) 维护了很多统计与 shiny 结合的 R 包,比如方差分析、逻辑回归、列联表、聚类分析等。
15. [Kirill Müller](https://github.com/krlmlr/) 维护了 DBI 等大量与数据库连接的 R 包。
16. Shannon T. Holloway 维护了许多与生存分析相关的 R 包。
17. [Simon Urbanek](https://github.com/s-u/) 维护了 rJava、Rserve 等流行的 R 包,CRAN 核心团队成员,负责维护 R 软件中与 MacOS 平台相关的部分。
18. [Achim Zeileis](https://github.com/zeileis/) 维护了 colorspace 等流行的 R 包,CRAN 核心团队成员。
19. Muhammad Yaseen 维护了多个与 Multiple Indicator Cluster Survey 相关的 R 包。
20. Pablo Sanchez 维护了多个与市场营销平台连接的 R 语言接口,Windsor.ai 组织成员。
16. [Shannon T. Holloway](https://populationhealth.duke.edu/personnel/shannon-holloway/) 维护了许多与生存分析相关的 R 包。
17. [Simon Urbanek](https://github.com/s-u/) 维护了 rJava、Rserve 等流行的 R 包,R 核心团队成员,负责维护 R 软件中与 MacOS 平台相关的部分。
18. [Achim Zeileis](https://github.com/zeileis/) 维护了 colorspace 等流行的 R 包,R 核心团队成员。
19. [Muhammad Yaseen](https://github.com/myaseen208/) 维护了多个与 Multiple Indicator Cluster Survey 相关的 R 包。
20. [Pablo Sanchez](https://github.com/pablosanchezmart/) 维护了多个与市场营销平台连接的 R 语言接口,[Windsor.ai](https://github.com/windsor-ai/) 组织成员。
21. [Thomas Lin Pedersen](https://github.com/thomasp85/) 维护了 patchwork、 gganimate 和 ggraph 等流行的 R 包,RStudio 雇员。
22. Torsten Hothorn 在统计检验方面贡献了不少内容,比如 coin 和 multcomp 等包,CRAN 核心团队成员。
22. [Torsten Hothorn](https://user.math.uzh.ch/hothorn/) 在统计检验方面贡献了不少内容,比如 coin 和 multcomp 等包,R 核心团队成员。
23. [Richard Cotton](https://github.com/richierocks/) 维护了 assertive 和 rebus 系列 R 包,代码可读性检查。
24. Florian Schwendinger 维护了大量运筹优化方面的 R 包,扩展了 [ROI](https://gitlab.com/roigrp/solver) 包的能力。
24. [Florian Schwendinger](https://github.com/FlorianSchwendinger) 维护了大量运筹优化方面的 R 包,扩展了 [ROI](https://gitlab.com/roigrp/solver) 包的能力。
25. [Guangchuang Yu](https://github.com/GuangchuangYu/) 维护了 ggtree 和 ggimage 等 R 包,在生物信息和可视化领域有不少贡献。
26. [Winston Chang](https://github.com/wch/) 维护了 shiny 等流行的 R 包,RStudio 雇员。
27. [John Muschelli](https://github.com/muschellij2/) 维护了多个关于神经图像的 R 包。
28. Kevin R. Coombes 维护了多个关于生物信息的 R 包,如 [oompaBase](https://oompa.r-forge.r-project.org/) 和 oompaData 等。
28. [Kevin R. Coombes](https://gitlab.com/krcoombes/) 维护了多个关于生物信息的 R 包,如 [oompaBase](https://oompa.r-forge.r-project.org/) 和 oompaData 等。
29. [Yihui Xie](https://yihui.org/) 维护了 knitr 、rmarkdown 等流行的 R 包,RStudio 雇员。
30. Carl Boettiger 维护了多个接口包,比如 rfishbase 等,rOpenSci 团队成员。
30. [Carl Boettiger](https://www.carlboettiger.info/) 维护了多个接口包,比如 rfishbase 等,rOpenSci 团队成员。
31. [Michael D. Sumner](https://github.com/mdsumner/) 维护了多个空间统计相关的 R 包。
32. [Emil Hvitfeldt](https://github.com/EmilHvitfeldt/) 维护了多个统计学习相关的 R 包,如 fastTextR 包等,RStudio 雇员。
33. [Georgi N. Boshnakov](https://www.rmetrics.org/) 维护了多个金融时间序列相关的 R 包,如 fGarch、timeDate 和 timeSeries 等包。
34. [Hana Sevcikova](https://github.com/hanase/) 维护了多个与贝叶斯人口统计相关的 R 包。
35. Joe Thorley 维护了多个与贝叶斯 MCMC 相关的 R 包,Poisson Consulting 雇员。
35. [Joe Thorley](https://github.com/joethorley/) 维护了多个与贝叶斯 MCMC 相关的 R 包,Poisson Consulting 雇员。

统计开发者数量随维护 R 包数量的分布,发现,开发 1 个 R 包的开发者有 6732 人,开发 2 个 R 包的开发者有 1685 人,第二名是第一名的五分之一,递减规律非常符合指数分布。

Expand Down Expand Up @@ -452,7 +441,8 @@ pdb_authors_dt <- data.table::rbindlist(pdb_authors_list)
最后整理出来的大数据框 **`pdb_authors_dt`** 含有近 26000 条记录,即边的规模大小。考虑到有些维护者和贡献者之间可能存在多次合作的情况,下面统计一下合作次数。

```{r}
pdb_authors_dt[ ,.(cnt = length(Package)) , by = c("Maintainer", "Authors")][cnt >= 10, ][order(cnt, decreasing = T), ]
pdb_authors_dt[ ,.(cnt = length(Package)) , by = c("Maintainer", "Authors")
][cnt >= 10, ][order(cnt, decreasing = T), ]
```

Authors 字段出现了不少组织的名字,这是因为有许多 R 包的维护者受雇于该组织,版权归属于该组织,组织不仅提供持续的资金,而且还提供其它帮助。以 **dplyr** 包为例,Hadley Wickham 受雇于 RStudio 公司,在 dplyr 包的元数据中,字段 `Authors@R` 中 RStudio 的角色是 cph 和 fnd ,即版权所有和资金支持。角色 cre 就是维护者,负责与 CRAN 团队的沟通。角色 aut 就是对 R 包有实质贡献的人。
Expand All @@ -470,7 +460,7 @@ format(eval(parse(text = pdb[pdb$Package == "dplyr", "Authors@R"])),
4. [Wouter Saelens](https://dynverse.org/) 提供一系列单细胞轨迹推理(single-cell trajectory inference)相关的 R 包,形成一个 [**dynverse**](https://github.com/dynverse) 家族****
5. [Poisson Consulting](https://github.com/poissonconsulting) 提供一系列用于计算生物学和统计生态学的 R 包和相关研究论文。
6. [Amazon.com, Inc.](https://aws.amazon.com/cn/) 提供一系列用于存储、管理、操作等 Amazon 云服务的 R 包,形成一个 [paws](https://github.com/paws-r/paws) 套件。
7. Eli Lilly and Company 可能是 [rOpenSci](https://github.com/ropensci) 的一员,赞助了旗下的 [targets](https://github.com/ropensci/targets)[jagstargets](https://github.com/ropensci/jagstargets) 等 R 包。
7. [Eli Lilly and Company](https://www.lilly.com/) 可能是 [rOpenSci](https://github.com/ropensci) 的一员,赞助了旗下的 [targets](https://github.com/ropensci/targets)[jagstargets](https://github.com/ropensci/jagstargets) 等 R 包。

最后,统计协作次数的分布,网络中边的权重的分布。

Expand All @@ -497,9 +487,11 @@ table(pdb_authors_net$cnt)
#| layout-ncol: 2
# Maintainer 的入度
pdb_authors_net_indegree <- pdb_authors_dt[Authors %in% Maintainer, ][, .(in_degree = length(Authors)), by = "Maintainer"]
pdb_authors_net_indegree <- pdb_authors_dt[Authors %in% Maintainer,
][, .(in_degree = length(Authors)), by = "Maintainer"]
# Authors 的出度
pdb_authors_net_outdegree <- pdb_authors_dt[Authors %in% Maintainer, ][, .(out_degree = length(Maintainer)), by = "Authors"]
pdb_authors_net_outdegree <- pdb_authors_dt[Authors %in% Maintainer,
][, .(out_degree = length(Maintainer)), by = "Authors"]
ggplot(pdb_authors_net_indegree, aes(x = in_degree)) +
geom_histogram(binwidth = 1) +
Expand All @@ -517,10 +509,12 @@ ggplot(pdb_authors_net_outdegree, aes(x = out_degree)) +

```{r}
# 边
pdb_authors_net_edge <- pdb_authors_dt[Authors %in% Maintainer, ][, .(edge_cnt = .N), by = c("Authors", "Maintainer")][edge_cnt > 1,]
pdb_authors_net_edge <- pdb_authors_dt[Authors %in% Maintainer,
][, .(edge_cnt = .N), by = c("Authors", "Maintainer")][edge_cnt > 1, ]
pdb_authors_net_edge[order(edge_cnt, decreasing = TRUE),]
# 顶点
pdb_authors_net_vertex <- pdb_authors_dt[, .(vertex_cnt = length(unique(Package))), by = "Maintainer"][Maintainer %in% c(pdb_authors_net_edge$Maintainer, pdb_authors_net_edge$Authors),]
pdb_authors_net_vertex <- pdb_authors_dt[, .(vertex_cnt = length(unique(Package))), by = "Maintainer"
][Maintainer %in% c(pdb_authors_net_edge$Maintainer, pdb_authors_net_edge$Authors),]
pdb_authors_net_vertex[order(vertex_cnt, decreasing = TRUE),]
```

Expand Down

0 comments on commit 1e00f4d

Please sign in to comment.