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 表示默认库的路径。
R语言学习 第十篇:包的更多相关文章
- R语言学习 第十篇:操作符
运算符是R语言中最基础的存在,熟悉运算符的使用,是熟练使用R处理数据的基础,操作符,顾名思义,是对数据进行运算的符号,R有自己的一套操作符,实现变量的赋值,引用,运算等功能. 一,赋值符号 为变量赋值 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习 第八篇:常用的数据处理函数
Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...
- R语言学习 第十一篇:日期和时间
R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...
- R语言学习 第五篇:字符串操作
文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符. 一,字符串中的字符数量 函数nchar()用于获得字符串中的字符数量: > s ...
- R语言学习 第三篇:数据框
数据框(data.frame)是最常用的数据结构,用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同数据列的数据类型可以相同,也可以不同,但是每列的行数(长度)必须相同.数据框的每列 ...
- R语言学习 第七篇:列表
列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据类型可以不同,每个元素的长度可以不同,是R中最灵活的数据类型.列表项可以是列表类型,因 ...
- R语言学习笔记:glue包实现变量传参
glue包介绍 glue包可用于自定义变量,然后通过传参的方式,对字符串部分内容进行自适应修改. 例如:可将日期赋值为:date = as.Date("2019-12-05"),然 ...
- R语言学习 第九篇:plyr包
在数据分析中,整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply ...
随机推荐
- 利用trie树实现前缀输入提示及trie的python实现
代码来自https://github.com/wklken/suggestion/blob/master/easymap/suggest.py 还实现了缓存功能,搜索某个前缀超过一定次数时,进行缓存, ...
- multipart/form-data文件上传
form表单的enctype属性:规定了form表单数据在发送到服务器时候的编码方式 application/x-www-form-urlencoded:默认编码方式 multipart/form-d ...
- [20170703]从备份集取出spfile转化为pfile.txt
[20170703]从备份集取出spfile转化为pfile.txt --//上个星期的事情,要从备份集里面取出看看spfile文件某个参数当时的情况,结果尝试命令老是出错,做一个记录.--//最后选 ...
- [20171211][转载]如何实现dbms_output输出没有打开serveroutput on.txt
[20171211]如何实现dbms_output输出没有打开serveroutput on.txt http://orasql.org/2017/12/10/sqlplus-tips-8-dbms_ ...
- Nginx状态信息(status)配置及信息详解
nginx状态信息功能的介: Nginx 在编译安装 Nginx 的时候添加 --with-http_stub_status_module 参数,其功能是记录 Nginx 的基本访问状态信息,让使用者 ...
- sklearn中各种分类器回归器都适用于什么样的数据呢?
作者:匿名用户链接:https://www.zhihu.com/question/52992079/answer/156294774来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 【PAT】B1037 在霍格沃茨找零钱(20 分)
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ...
- kuangbin fire搜索bfs
Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of the ma ...
- (13)Python文件操作
- centos7下安装docker(12.4容器如何与外部进行通信)
1.容器如何访问外部 前面我们做了很多试验:只要host能连外网,使用默认bridge(docker0)创建得容器就能访问外网,那么容器是怎样访问外网的呢? 注:这里的外网不仅是internet,包括 ...