包(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 表示默认库的路径。