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 ...
随机推荐
- JavaScript大杂烩11 - 理解事件驱动
前面我们回顾了前端JavaScript只干的两件事:操作BOM与操作DOM,那么什么时候去干这些事呢?答案是需要干的时候去干.那么什么时候是需要干的时候呢?答案是事件被触发的时候.这就是通常所说的“事 ...
- [20171120]关于INBOUND_CONNECT_TIMEOUT设置.txt
[20171120]关于INBOUND_CONNECT_TIMEOUT设置.txt --//上午翻看以前我的发的帖子,发现链接:http://www.itpub.net/thread-2066758- ...
- 将 Azure 文件共享用于 Windows VM
可将 Azure 文件共享用作一种从 VM 中存储和访问文件的方式. 例如,你可以存储一个要与所有 VM 共享的脚本或应用程序配置文件. 本主题将介绍如何创建和装载 Azure 文件共享,以及如何上传 ...
- Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
在主工程(ASP.NET WEB/WCF等)的NuGet里引用 System.Data.SQLite.Core 不仅仅是Service需要引用,主工程即使不直接使用SQLite的库,也需要引用. 若使 ...
- 描述性统计的matlab实现
理论讲的再多不会做也白弄 直接上手 一.针对接近正态分布的(均值,方差,标准差,极差,变异系数,偏度,峰度) 这里我必须提前说明一点就是,你在写好函数后,函数的名是dts,你保存的文件名也必须是dts ...
- JavaScript的运行机制
先来看一段代码然后再来详细的说明js的运行机制,下面的一段代码执行顺序是什么 console.log(1); setTimeout(function () { console.log(2); }, 0 ...
- Opaque data type--不透明类型
Opaque:对使用者来说,类型结构和机制明晰即为transparent,否则为Opaque In computer science, an opaque data type is a data ty ...
- SpringMVC---applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Spring Component注解处理过程
接下来: org.springframework.context.annotation.ComponentScanBeanDefinitionParser#parse方法展开加载过程:
- js中typeof与instanceof用法小记
今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...