1 R程序包来源
目前R程序包共有20200+个(2020.08.01,https://www.rdocumentation.org统计),主要来自三个网站:
1.CRAN (https://cran.r-project.org)2.github (https://github.com)3.Bioconductor (http://bioconductor.org)
其中最常用的是CRAN包,CRAN上有16121个程序包(2020.08.09),在线安装使用如下命令:
install.packages("")
例:
install.packages("vegan") #安装vegan程序包install.packages("spaa", "vegan", "ade4") #安装多个程序包
2 github
地址 https://github.com
Git是目前业界最流行的版本控制系统(Version Control System), GitHub是开源代码托管平台,它提供基于 Git 的代码托管服务。Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
安装Github上的R程序包需要用到devtools
程序包
requiredPackages = c('devtools') # 加载/安装需要的包 for(p in requiredPackages){ if(!require(p,character.only = TRUE)) install.packages(p) library(p,character.only = TRUE) }library(devtools) #加载devtools包
2.1网络安装
如果计算机联网,可使用如下命令安装:
install_github("<程序包所有者>/<程序包名>")devtools::install_github("<程序包所有者>/<程序包名>")# 'devtools::' 为指定使用devtools包中的名录,避免有命令冲突情况,非必要
例:
install_github("gastonstat/plspm")
2.2本地安装
如果计算机不能联网,或各种原因不能连上github,下载相应的程序包以后放入到需要安装的计算机中。使用如下命令安装:
devtools::install_local("包所在地址//") #镜像选择all-- 1
例:
devtools::install_local("D:\Desktop\plspm-master.zip")
3 Bioconductor
地址:http://bioconductor.org
专门做生物信息学R包的平台,如KEGG、GO富集分析,pathway分析等相关的程序包均在此平台上。安装介绍:http://bioconductor.org/install/
requiredPackages = c('BiocManager') # 加载/安装需要的包for(p in requiredPackages){ if(!require(p,character.only = TRUE)) install.packages(p) library(p,character.only = TRUE)}BiocManager::install("", version = "") #安装3.10版本的程序包
例:
BiocManager::install("GenomicRanges", version = "3.9") #安装3.9版本的程序包
比较:CRAN是官方程序包存储库,发布程序包需要通过审查、测试,帮助文档齐备、代码规范,社区活跃度非常高,每个月都有很多程序包发布/更新。Bioconductor是生物信息学方面程序包的专题库,活跃度也较高,代码较为规范,帮助文档偶有缺失。Github是开源项目常用的存储库,主要用于版本控制和多人协作,对于R程序包的优势在于其更新快(并不一定是原作者进行),第一时间发布共享,但许多包没有帮助文档,降低了可信度,增加了学习门槛。
4 爬取官方CRAN包信息
# 加载/安装需要的包requiredPackages = c('magrittr', 'wordcloud2', 'jiebaR', 'rvest')for(p in requiredPackages){ if(!require(p,character.only = TRUE)) install.packages(p) library(p,character.only = TRUE)}#读取速度主要取决于网速,需要时间page "https://mirror.lzu.edu.cn/CRAN/web/packages/available_packages_by_name.html")#解析网页也需要时间,取决于CPU和内存,使用system.time()查看运行时间system.time(pkg_table % html_table(fill = T)) class(pkg_table)# 返回list,这个list应该包含了网页中的所有table# 整个网页就只有一个tablepkg_table # 转化为数据框才能数据进行缺失值处理str(pkg_table) # obs.数量即为包的数量pkg_table 1,] colnames(pkg_table) "package",## R包信息词云分析rpkg % .[nchar(.)>1] %>% table(.) %>% .[!grepl('[0-9]+',names(.))] %>% .[!grepl('a-zA-Z',names(.))] %>% sort(., decreasing = TRUE) %>% .[1:1000] %>% data.frame(.)colnames(rpkg) "word",#绘图wordcloud2(rpkg) #未排除干扰词汇的绘图
4.1 排除一些特定干扰词汇
#定义需要排除的干扰词汇prep.words "for", "with","to","on","by","or","from", "Using", "The", "the", "an","An", "Packages", "Package", "Tools", "Tool")#删除干扰词汇信息rpkg which(rpkgrpkg[1:10,]
#绘图wordcloud2(rpkg, fontFamily = "Times New Roman", backgroundColor = "black", color = 'random-light')
4.2 含有Ecology的R包数量
which(rpkg$word %in% c("Ecology","ecology")) %>% rpkg[.,]