R包(权威入门指南)

本文概述

  • 1.什么是包?
  • 2.什么是存储库?
  • 3.如何安装R软件包
  • 4.如何更新, 删除和检查已安装的软件包
  • 5.是否有用于安装软件包的用户界面?
  • 6.如何加载软件包
  • 7.包和库之间有什么区别?
  • 8.如何一次加载多个软件包
  • 9.如何卸载包
  • 10.文档和帮助的替代来源是什么?
  • 11.如何选择合适的R封装
  • 结论
R包是社区开发的功能和数据集的集合。它们通过改进现有的基本R功能或添加新功能来增强R的功能。例如, 如果你通常使用数据帧, 则可能你会听说过dplyr或data.table, 这是两个最受欢迎的R软件包。
但是, 假设你想对韩文进行某种自然语言处理, 从网络中提取天气数据, 或者甚至使用地表能量平衡模型估算实际的蒸散量, R包都可以满足你的要求!最近, 官方存储库(CRAN)已发布了10, 000个软件包, 并且可以通过Internet公开获得更多软件包。
【R包(权威入门指南)】如果你是从R开始的, 那么今天的文章将介绍R软件包的基础知识以及如何使用它们。你将介绍以下主题, 以及11个用户常见问题解答:
  • R软件包的基础知识:什么是软件包, 为什么要将它们的使用纳入你的R体验中?在哪里可以找到包?
  • 安装和用法:如何从CRAN, CRAN镜像, Bioconductor或Github安装软件包?与install.packages()相关的一些函数可用于更新, 删除, …软件包?如何使用用户界面安装软件包?你如何装载包? R中的程序包和库之间有什么区别?如何同时加载多个软件包?如何卸载R包?
  • 文档:除了DESCRIPTION文件外, 文档的其他来源是什么?如何使用它们?
  • 在R软件包之间进行选择:如何找到适合你的分析的软件包?
如果你是经验更丰富的用户, 则可以随时学习新知识(例如我在上一段中刚刚提到的三个软件包的名称)。无论如何, 欢迎阅读R包介绍以及如何使用它们!
1.什么是包? 让我们从一些定义开始。打包是组织你自己的工作并与他人共享(如果你愿意)的一种合适方法。通常, 一个程序包将包括代码(不仅是R代码!), 该程序包的文档和内部功能, 一些用于检查一切正常工作的测试以及数据集。
在Description文件中提供了有关软件包的基本信息, 你可以在其中找到软件包的用途, 作者是谁, 文档所属的版本, 日期, 使用许可证的类型以及软件包的依赖性。
请注意, 你也可以单击此处查看DESCRIPTION文件。
除了找到诸如cran.r-project.org或stat.ethz.ch之类的Description文件之外, 你还可以通过package help(package = “ 软件包” ), 或在线查看软件包的信息库。
例如, 对于” 统计” 包, 这些方法将是:
packageDescription("stats") help(package = "stats")

2.什么是存储库? 存储库是软件包所在的位置, 因此你可以从中安装软件包。尽管你或你的组织可能具有本地存储库, 但通常它们是联机的并且每个人都可以访问。 R软件包最受欢迎的三个存储库是:
  • CRAN:官方存储库, 它是由全世界R社区维护的ftp和Web服务器网络。 R基金会对此进行了协调, 对于要在此处发布的软件包, 它需要通过几次测试, 以确保该软件包遵循CRAN策略。你可以在此处找到更多详细信息。
  • Bioconductor:这是一个特定于主题的存储库, 旨在用于生物信息学的开源软件。作为CRAN, 它有自己的提交和审阅过程, 并且其社区非常活跃, 每年召开几次会议。
  • Github:尽管这不是R特有的, 但Github可能是开源项目最受欢迎的存储库。它的流行来自开放源代码的无限空间, 与git, 版本控制软件的集成以及与他人共享和协作的便捷性。但是请注意, 没有与此相关的审核过程。
3.如何安装R软件包 从CRAN安装软件包
如何安装软件包取决于其所在的位置。因此, 对于可公开获得的软件包, 这意味着它属于哪个存储库。最常见的方法是使用CRAN存储库, 然后只需要包的名称并使用命令install.packages(” package” )。
例如, 最早发布于CRAN且仍在线且仍在更新中的软件包是Daniel Adler提供的vioplot软件包。
你能找到它的出版日期吗?提示:在包装说明中;)。
要从CRAN安装它, 你将需要使用:
install.packages("vioplot")

运行此命令后, 你将在屏幕上收到一些消息。它们将取决于你使用的操作系统, 依赖关系以及软件包是否已成功安装。
让我们更深入地了解vioplot安装的输出, 你可能会收到一些消息:
Installing package into ‘/home/username/R/x86_64-pc-linux-gnu-library/3.3’ (as ‘lib’ is unspecified)

这表明软件包在计算机上的安装位置, 并且可以使用lib参数指定其他文件夹位置。
trying URL 'https://cran.rstudio.com/src/contrib/vioplot_0.2.tar.gz' Content type 'application/x-gzip' length 3801 bytes ================================================== downloaded 3801 bytes

在这里, 你会收到有关包来源和大小的信息。这将取决于你选择的CRAN镜像。
你也可以对其进行更改, 但是稍后将在本文中阅读有关此内容的更多信息。
* installing *source* package ‘vioplot’ ... ** R ** preparing package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded * DONE (vioplot)

这些是安装本身的消息, 源代码, 帮助, 一些测试, 最后是一条消息, 表明一切顺利, 软件包已成功安装。根据你使用的平台, 这些消息可能会有所不同。
The downloaded source packages are in ‘/tmp/RtmpqfWbYL/downloaded_packages’

最后一条信息告诉你包中原始文件的位置。使用包不需要它们, 因此通常将它们复制到一个临时文件夹位置。
最后, 要一次安装多个软件包, 只需将它们作为字符向量写在install.packages()函数的第一个参数中:
install.packages(c("vioplot", "MASS"))

从CRAN镜像安装
请记住, CRAN是一个服务器网络(每个服务器称为” 镜像” ), 因此你可以指定要使用的服务器。如果通过RGui界面使用R, 则可以通过在使用install.packages()命令后出现的列表中选择R来实现。在RStudio上, 默认情况下已选择镜像。
你也可以使用chooseCRANmirror()选择镜像, 或者使用repo参数直接在install.packages()函数内部选择??镜像。你可以使用getCRANmirrors()或直接在此链接上查看可用镜像的列表。
示例:要使用根特大学图书馆镜像(比利时)来安装vioplot软件包, 可以运行以下命令:
install.packages("vioplot", repo = "https://lib.ugent.be/CRAN/")

安装生物导体包装
对于Bioconductor, 安装软件包的标准方法是首先执行以下脚本:
source("https://bioconductor.org/biocLite.R")

这将安装一些安装生物导体包装所需的基本功能, 例如biocLite()函数。如果要安装Bioconductor的核心软件包, 只需键入它而无需其他参数:
biocLite()

但是, 如果你只对该存储库中的一些特定软件包感兴趣, 则可以直接将其名称键入为字符向量:
biocLite(c("GenomicFeatures", "AnnotationDbi"))

通过devtools安装软件包
如前所述, 每个存储库都有自己的方式来从中安装软件包, 因此, 如果你经常使用来自不同来源的软件包, 则此行为可能会令人沮丧。一种更有效的方法可能是使用devtools软件包来简化此过程, 因为它包含每个存储库(包括CRAN)的特定功能。
你可以使用install.packages(” devtools” )照常安装devtools, 但可能还需要在Windows上安装Rtools, 在Mac上安装Xcode命令行工具, 或在Linux上安装r-base-dev和r-devel。在这里, 你可以获得有关devtools和安装的更多详细信息。
安装devtools之后, 你将可以使用实用程序功能来安装其他软件包。选项包括:
  • 来自Bioconductor的install_bioc(),
  • 来自Bitbucket的install_bitbucket(),
  • 来自CRAN的install_cran(),
  • 从git仓库安装install_git(),
  • 来自GitHub的install_github(),
  • 来自本地文件的install_local(),
  • SVN存储库中的install_svn(),
  • 来自URL的install_url(), 以及
  • 来自特定版本的CRAN软件包的install_version()。
例如, 要从其Github存储库安装babynames软件包, 可以使用:
devtools::install_github("hadley/babynames")

4.如何更新, 删除和检查已安装的软件包 在使用R花费更多的时间后, 通常每周甚至每天使用install.packages()几次, 并且鉴于开发R软件包的速度, 你可能需要早于后来更新或替换你心爱的软件包。在本节中, 你将找到一些可以帮助你管理集合的功能。
  • 要检查计算机上安装了哪些软件包, 可以使用:
installed.packages()

  • 在你的情况下, 使用功能remove.packages()可以直接卸载软件包:
remove.packages("vioplot")

  • 你可以通过调用函数检查哪些软件包需要更新:
old.packages()

  • 你可以使用以下方法更新所有软件包:
update.packages()

  • 但是对于特定的程序包, 只需再次使用:
install.packages("vioplot")

5.是否有用于安装软件包的用户界面? 如果你希望使用图形用户界面(即指向并单击)来安装软件包, 则RStudio和RGui都包括它们。在RStudio中, 可以在” 工具” -> ” 安装软件包” 中找到它, 然后会出现一个弹出窗口, 以键入要安装的软件包:
R包(权威入门指南)

文章图片
在RGui中, 你可以在” 软件包” 菜单下找到实用程序。
R包(权威入门指南)

文章图片
但是, 如果你输入关键字” korean” 并单击” Search” , 我们将进行全面搜索, 你将看到两列结果:左侧的软件包和右侧的函数。
重点关注” 包” 列, 对于每个结果, 你都将获得包的名称, 并带有指向更详细信息的链接, 作者的姓名, 还可以链接以查看来自同一作者的其他包, 以及有关搜索的包的一些说明突出显示单词, 以及有关包装受欢迎程度的信息。
R包(权威入门指南) 说到受欢迎程度, 这很重要, 因为搜索将首先将下载最多的软件包排在第一位, 从而提高结果的相关性。如果你想了解有关RDocumentation的搜索实现的更多详细信息, 请在此处发表一篇非常详细的文章。
因此, 似乎KoNLP软件包可以满足你的需求, 单击其名称后, 你将获得以下信息:
  • 标头, 其中包含软件包名称, 作者, 版本, 选择较旧版本的选项, 下载次数以及指向其RDocumentation页的链接。
  • 程序包的描述。
  • 包中包含的功能列表, 每个功能都可以单击, 因此你可以获得有关该功能使用的更多详细信息。你还将获得一个搜索框, 你可以在其中快速访问所需的功能。
  • 随着下载数量的演变而变化的图。
  • 包的详细信息以及DESCRIPTION文件中的信息。
  • 最后, 可以在包的README文件中包含一个带有RDocumentation链接的徽章。
RDocumentation不仅是搜索引擎, 它还为你提供了一些不错的选择来发现和了解R包和功能:
  • 就像CRAN任务视图一样, RDocumentation也提供任务视图:就像你在上面阅读的内容一样, 这是按主题探索R包的另一种方法。例如, 你可以获取与图形, 财务或时间序列等相关的软件包的列表。
  • 排行榜。此模式为你提供了最受欢迎的软件包和开发人员, 最新的软件包和更新的概述, 以及三个带有下载分布, 最常用的键盘和最上面的软件包依存关系图的图, 你可以在其中查看最流行的软件包的相关性彼此之间, 你可以找到一组包装(用不同的颜色标识)。
R包(权威入门指南)
  • RDocumentation程序包。 RDocumentation不仅是网站, 而且是R包。它覆盖了帮助功能, 因此你可以将RDocumentation的功能整合到你的工作流程中。加载此程序包后, help()函数将打开浏览器窗口或具有RDocumentation访问权限的RStudio帮助面板。
与网站使用相比, 直接在R或RStudio面板上使用RDocumentation可以为你带来一些优势:
  • 检查软件包的安装版本。软件包的帮助窗格将为你提供与网页相同的信息(下载, 说明, 功能列表, 详细信息), 以及有关软件包已安装版本的信息。
例如, 检查以前安装的vioplot软件包:
install.packages("RDocumentation") library(RDocumentation) help(package = "vioplot")

R包(权威入门指南)
  • 能够直接从帮助面板安装或更新软件包。我知道你现在是安装软件包的专家, 但是在这里, 你还有另一种选择, 方法是单击RDocumentation提供的帮助面板上的一个按钮。
remove.packages("vioplot") help(package = "vioplot")

R包(权威入门指南)
  • 运行并提出示例。包中功能的帮助窗格将为你提供选项, 只需单击一个按钮即可再次运行示例。你还可以提出一些示例, 这些示例可以并入帮助页面并由其他R用户进行测试。
install.packages("vioplot") help(vioplot)

R包(权威入门指南)
  • RDocumentation API最后, RDocumentation不仅是网站和R包, 还是API。对于需要更高灵活性的更高级用户, RDocumentation.org提供了具有其网页功能的JSON API。
结论 今天的文章涵盖了广泛的技术和功能, 可以通过使用软件包从R中获得最大收益。与往常一样, 在R中执行特定任务的方法不只一种, 而且管理软件包也不例外。
我希望今天你了解了发现, 安装, 加载, 更新, 获得帮助或删除软件包的最常用的方法。
我知道这篇文章并没有涵盖有关软件包内部结构或如何创建自己的软件包的太多细节。敬请关注srcmini的博客以及有关这些主题和其他相关主题的课程, 但与此同时, 你可以在此处找到” R包” 一书, 这是一个很好的参考。
啊!而且我几乎忘记了, 如果你尚未通过搜索RDocumentation来发现它, 我可以告诉你, 使用weatherData可以从互联网上提取天气数据, 并且如果你对蒸散感兴趣, 也许你应该看看蒸散, 水或SPEI软件包。

    推荐阅读