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 表示默認庫的路徑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM