R语言程序包
Posted 喀斯特生态
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言程序包相关的知识,希望对你有一定的参考价值。
1 R程序包来源
1.CRAN (https://cran.r-project.org)2.github (https://github.com)3.Bioconductor (http://bioconductor.org)
install.packages("<程序包名称>")
例:
install.packages("vegan") #安装vegan程序包
install.packages("spaa", "vegan", "ade4") #安装多个程序包
2 github
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("包所在地址//<包名含拓展名, 如'.zip'>") #镜像选择all-- 1
例:
devtools::install_local("D:\Desktop\plspm-master.zip")
3 Bioconductor
专门做生物信息学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 <- read_html("https://mirror.lzu.edu.cn/CRAN/web/packages/available_packages_by_name.html")
#解析网页也需要时间,取决于CPU和内存,使用system.time()查看运行时间
system.time(
pkg_table <- page %>%
html_table(fill = T))
class(pkg_table)
# 返回list,这个list应该包含了网页中的所有table
# 整个网页就只有一个table
pkg_table <- as.data.frame(pkg_table)
# 转化为数据框才能数据进行缺失值处理
str(pkg_table) # obs.数量即为包的数量
pkg_table <- pkg_table[-1,] #删除第1行
colnames(pkg_table) <- c("package","introduction")
## R包信息词云分析
rpkg <- qseg[pkg_table$introduction] %>%
.[nchar(.)>1] %>%
table(.) %>%
.[!grepl('[0-9]+',names(.))] %>%
.[!grepl('a-zA-Z',names(.))] %>%
sort(., decreasing = TRUE) %>%
.[1:1000] %>%
data.frame(.)
colnames(rpkg) <- c("word","Freq")
#绘图
wordcloud2(rpkg) #未排除干扰词汇的绘图
4.1 排除一些特定干扰词汇
#定义需要排除的干扰词汇
prep.words <- c("for","and","of","in",
"with","to","on","by","or","from",
"Using",
"The", "the", "an","An",
"Packages", "Package", "Tools", "Tool")
#删除干扰词汇信息
rpkg <- rpkg[-(which(rpkg$word %in% prep.words)),]
rpkg[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[.,]
以上是关于R语言程序包的主要内容,如果未能解决你的问题,请参考以下文章