R学习 第十篇:包

包(Package)是实现特定功能的、预先写好的代码库(library),通俗地说,包是含有函数、数据等的功能模块。R拥有大量的软件包,许多包都是由某一领域的专家编写的,但并不是所有的包都有很高的质量。在使用包之前,最好到社区中了解其他网友的反馈。R预先安装了一系列的基础包,包括base、datasets、utils、grDevices、graphics、stats、以及methods,由于已经预先安装,因此,可以直接使用,提供了系统默认的函数和数据集。

一,包操作

在使用包之前,用户必须把包安装到本地的R引擎中;把包安装到本地之后,只有在包被引用之后,才可以引用包中的函数。

通常情况下,用户只需要知道如何安装包和引用包,就可以用R编程了,安装包和引用包的命令分别是:

install.packages("package-name")
library(package-name)

1,安装包

在使用包之前,必须把包安装到R引擎中,install.packages()函数用于从CRAN或本地下载和安装包:

install.packages(pkgs="package_name", lib)

参数注释:

  • pkgs:包的名称,使用字符串来表示;
  • lib:安装包的库路径,如果省略,那么默认值是函数 .libPaths()返回的第一个元素

注意,R将反斜杠视为一个转义字符,表示路径,要么使用"D:\\mydata“,要么使用"D:/mydata"。

例如,把包ggplot2安装到默认的库路径中:

install.packages("ggplot2")

2,引用包和分离包

在安装包之后,若要使用包中的数据和函数,则必须把包载入(引用)到R会话中。R使用library()载入包,参数是包的名称,或是名称的字符串。

library(package_name)

当包被载入之后,R引擎把该包添加到包的搜索路径中。可以使用search()函数查看当前R会话搜索路劲。

search()

当把包载入后,可以使用search()函数查看当前R脚本可以直接应用搜索路径中的所有包。如果要把包从当前的搜索路径中移除,可以使用detach()函数,detach()是library()的逆操作。

detach(package:plyr)
detach("package:plyr",character.only = TRUE)

当把包从搜索路径中移除后,当前的R脚本不能直接引用该包。如果想要重新引用包中的函数或数据,必须使用library()函数重新引用该包。

3,查看已经安装的包

如果要查看已经安装到本地的包,可以使用installed.packages(),该函数返回一个矩阵(Matrix),列名主要有:包名(Package Name)、引用路径(Library Path)和版本号(Version Number),行名是包的名称(Package Name)。

installed.packages(lib.loc = NULL)

参数 lib.loc 是指要搜索的 R 库的路径。默认值是NULL,表示 libPaths()下面的所有路径。

> installed.packages(lib.loc = NULL)
                 Package            LibPath                                                Version      
assertthat       "assertthat"       "C:/Users/xxx/Documents/R/win-library/3.3"         "0.1"      

4,包的移除

如果把已安装的包从本地移除,可以使用remove.packages()函数,它是install.packages()的逆向操作。如果想要再次使用该包,那么必须重新把包安装到本地。

remove.packages(pkgs, lib)

参数注释:

  • pkgs:用于指定包的名称;
  • lib:用于指定要搜索的R库的的路径,从该路径下搜索要移除的包;如果不指定,那么lib 是 .libPaths() 返回的第一个元素。

二,查看包安装的路径

使用path.packages()函数可以直接查看包安装的路径,参数是包的名字(字符串)

> library(ggplot2)
> path.package("ggplot2")
[1] "C:/Users/xxx/Documents/R/win-library/3.5/ggplot2"

三,库路径

存储包的目录称作库(library),库的路径(也叫library tree)就是搜索包的位置。在本地中,库的路径不是唯一的,通过base包中的函数 .libPaths()查看库的所有路径:

> .libPaths()
[1] "C:/Users/xxx/Documents/R/win-library/3.5" "C:/Program Files/R/R-3.5.1/library" 

该函数返回的库路径,用于安装用户通过执行函数 install.packages() 安装的包。

R中预装的默认库的路径,和用户安装的库的路径是不相同的,默认库的安装路径的通过base包中的变量 .library 查看:

> .Library
[1] "C:/PROGRA~1/R/R-35~1.1/library"

该变量 .Library 表示默认库的路径。

 

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
posted @ 2018-12-21 14:47  悦光阴  阅读(1340)  评论(0编辑  收藏  举报