R语言实战 | 新手福利~R语言程序包的安装与使用

"R实战"专题·第1篇

编辑 | 科白君

本期推送内容

R语言程序包的安装与使用问题。编写一份完整代码时需要用到很多不同的函数,这意味着需要各种各样的程序包。目前,R语言含有1万多个程序包甚至更多。尽管常用的R包可能只有几百或上千个,但很多时候初学者在学习时常遇到安装R程序包的报错问题。之前,我在安装export包及其更新时遇到了各种坑,尝试了很多种办法才解决。这里,我总结了以下几种被广泛尝试的安装方法,希望对大家有所帮助。

以下是原文链接,想学习R语言的朋友可以持续关注微信公众号:科白君的土壤世界


01 R语言程序包的简介

R语言程序包是函数、数据、代码的一个集合。R包中主要包含函数的含义及用法,还包括数据集和代码示例等。只有将R包载入R平台后,其R包里的函数才能被识别或读取。加载后,使用者可以查询到该R包的所有信息,有助于编译代码。

02 R语言程序包的主要来源

目前,R包主要来源于三个平台。

1)CRAN存储了R最新版本的代码和文档的服务器 (https://cran.r-project.org/)

2) 生物信息学领域的Bioconductor平台,它提供的R包主要为基因组数据分析和注释工具(https://bioconductor.org/)

3) 面向开源及私有软件的第三方平台--Github。R包的作者更愿意将其存储在该平台,因此很多时候需要在上面下载(https://github.com/)

03 检查可用的R语言程序包

1)我们先查询当前R包的存储库位置,可以通过 .libPaths ( ) 函数完成。

.libPaths () #点.需要注意容易遗漏

得到结果:电脑本身的R位置和本地位置,两条路径。

2)获取所有已经安装的R包列表,利用 library ( ) 函数完成。

library ()

结果如图:该路径下所有R包的列表。

04 R语言程序包的安装方法

1) CRAN平台

我们使用 install.packages("package name")直接从CRAN安装。

install.packages ("vegan")

# 如果要下载多个包

可以用 c ( ) 来实现install.packages (c ("package 1", "package 2", "package 3",···) ) 

或手动安装,先从https://cran.r-project.org/web/packages下载所需的R包。把该R包保存着适当的本地位置,然后再用代码加载安装。

install.packages (file_name_with_path, repos = NULL, type = "source")# 例子

install.packages ("C:\Users\ThinkPad\Desktop\vegan_2.5-7.zip", repos = NULL, type = "source")

再或者用以下办法完成安装tar.gz/zip格式的程序包。

2) Bioconductor平台

与CRAN安装相似,先 source ("https://bioconductor.org/biocLite.R") 链接到Bioconductor,然后 biocLite ("package name")进行安装。如果下载过慢,用chooseBioCmirror ( ) 更改镜像。如果 source 失效,则根据网站里的介绍选择BioManager : : install ( ) 安装。

#如果source无效,则看https://bioconductor.org/installsource("https://bioconductor.org/biocLite.R")

#然后用biocLite("package name")

#以下是https://bioconductor.org/install 的一种方法if(!requireNamespace("BiocManager",quietly=TRUE))

install.packages("BiocManager")BiocManager::install(version="3.10")#这是基于3.6R版本,如果是4.0R版本则使用version="3.12"chooseBioCmirror()#修改下载镜像

BiocManager::install("ggtreeExtra")

再或者用以下途径完成BioManager安装:

install.packages("BiocManager") BiocManager::install("ggtreeExtra")

#指定版本安装

BiocManager::install("ggtreeExtra",version="4.0")

3) Github平台

需要devtools包remotes包进行下载。先安装Rtools软件,然后安装devtools或remotes,然后用 devtools / remotes : : install_github安装,需记住作者和程序包的名字。例如YuLab-SMU / ggtreeExtra,通常由包的原作者自己取的,各式各样的名称都有。

#使用install_github()前需要预装rJava、devtools/remotes包#其中windowsJava环境需要配置,基本思路是:#先下载安装jdk,然后添加jdk路径到新建的系统变量#具体操作流程可以学习https://blog.csdn.net/weixin_45915507/article/details/105786961#devtools包

install.packages("devtools")library(c("rJava","devtools"))install_github("YuLab-SMU/ggtreeExtra")

#或者

if(!requireNamespace("devtools",quietly=TRUE)){

install.packages("devtools")

}

devtools::install_github("YuLab-SMU/ggtreeExtra")

#remotes包

install.packages("remotes")

library("remotes")

install_github("YuLab-SMU/ggtreeExtra")

#或者

if(!requireNamespace("remotes",quietly=TRUE)){

install.packages("remotes")

}

remotes::install_github("YuLab-SMU/ggtreeExtra")

此外,有作者开发了 githubinstall 包,与CRAN的安装方式一致,但注意使用前先安装Rtools软件。安装时我们仅需输入包的名称,即可完成下载。

install.packages("githubinstall")

library("githubinstall")

githubinstall("ggtreeExtra")

05 R语言程序包的使用方法

1) 加载R包的方法:library ("package name") require ("package name") 函数。此外,最近有新的方法可以一次性载入多个R包。先install.packages ("pacman"),然后library ("pacman"),用该R包中的一个函数--p_load ( ) 函数完成。即使你所安装的R包与当前R环境不匹配(package is not avaliable for the R version) ,该函数仍能够对其安装。对于pacman包中大部分函数,不需要对括号内packages使用引号" "

#正常加载程序包的方法

library()

require()

#一次性加载多个程序包的方法

if(!require("pacman"))install.packages("pacman")

library("pkg1"); library("pkg2")  # library (R包名) 用; 然后记得放在同一行要不然会报错

library(c("pkg1","pkg2"...)) 

#下载pacman包

library("pacman")

#library加载pacman包

p_load(ggplot2,ggthemes,dplyr,readr,showtext,export) #p_load需要pacman包才能运行

2) 查看R包的方法:①查看默认加载的R包,getOption("defaultPackages") 函数;②查看已加载的R包,(.packages()) 或者 search ( )函数;③查看所有已安装的R包,(.packages(all.available = T))installed.packages()library() 函数。

#查看默认加载的R包

getOption("defaultPackages")

#查看已加载的R包

(.packages())

#查看所有已安装的R包

(.packages(all.available=T))

installed.packages()

library()

3) 卸除或者卸载R包的方法:①卸除R包,非卸载,detach("package:ggplot2") 函数;②卸载一个或者多个包,remove. packages(c("package1","package2") ..., lib = file.path("path_to_library")) 函数。

# 注意是卸除,而非卸载,意味着把包从R运行环境中彻底去除,只是不希望该包被加载使用。在使用包的同名函数发生冲突时,可以检验函数依赖性。library ("ggplot2") detach ("package:ggplot2") / require ("ggplot2") pkg <- "package:ggplot2"

# "package1","package1"表示包名,即可以一次性卸载多个包。remove. packages (c ("package1", "package2"), lib = file.path ("path_to_library") )# "path_to_library"表示存储R包的library路径,通常情况下只输一个路径即可。使用命令.libPaths ( )可以查看库路径。

# 例子 remove.packages (c ("zoom"), lib = file.path ("C:/Program Files/R/R-3.6.1/library") )

4) 咨询函数和R包帮助的方法:①help("package name") 函数,如 help ("ggplot2"),再或者 ?ggplot2 来查看ggplot2包的帮助(引号可以省略);②example ("ggplot2") 可以查看ggplot2包里的示例;③data ( ) 列出当前已经加载包中所含的所有可用示例的数据集。

# 利用帮助代码查询所需要的R包

help ("ggplot2")

# 或者

?ggplot2

# 查看R包里的示例

example ("package name") 

# 列出已加载R包中的所有可用示例的数据集

data ( ) 

Tips:

1) 使用R包的时候,常常看到成功下载了R包后,我们可以利用R包与函数名的联用代码,主要是这个符号" : : "。For exam.,用 devtools : : install_github ( )。符号: : 表示符号前是R包,以及符号后为该R包中的函数,这更加明确了代码,即某R包下某函数的运行。或者,我们也可以把代码分开运行。下载完R包后,用 library ( ) 先载入所需R包,然后再直接用函数运行。

2) 卸除R包的代码可熟记,随着你R语言知识掌握的越来越多,代码越来越多,函数越来越多,同名函数也会随之出现, detach ("package:pkg name") 函数能帮你。

3) 通常一些函数名中自带点 (.),这个要注意,非常容易遗漏。网上有些代码在完成后,可能没有检查,不小心遗漏了 . ,导致很多初学者一脸懵逼,走了很多弯路,浪费了很多时间。因此,希望这份推文能够帮助大家少走弯路吧。

4) 记得用help ()记得help ()记得help (),不懂的一定要学会用help ( )。该函数的功能非常强大,它如同你学习过程中的老师,只要你看的懂英文,就能把R语言学好。


目前,根据自己所学的知识以及网上找到的素材,不能说涵盖了所有,但足够初学者学习和使用~ 至于新的知识,需要大家在学习时留心哟~


想继续学习R语言的朋友可以关注微信公众号 :科白君的土壤世界

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容