Package base version 4.2.0
Description
library 和 require 加载并连接附加包。
Usage
library(package, help, pos = 2, lib.loc = NULL,
character.only = FALSE, logical.return = FALSE,
warn.conflicts, quietly = FALSE,
verbose = getOption("verbose"),
mask.ok, exclude, include.only,
attach.required = missing(include.only))
require(package, lib.loc = NULL, quietly = FALSE,
warn.conflicts,
character.only = FALSE,
mask.ok, exclude, include.only,
attach.required = missing(include.only))
conflictRules(pkg, mask.ok = NULL, exclude = NULL)
Arguments
参数【package,help】:包的名称,以名称或字面值字符串或字符串的形式给出,具体取决于是否使用character.only为FALSE(默认)或TRUE。
参数【pos】:检索的名称空间的位置。也可以是当前检索位置的名称,由search()指定。
参数【lib.loc】:描述要搜索的R库树的位置的字符向量,或NULL。默认值NULL对应于. libpaths()当前已知的所有库。不存在的库树将被静默忽略。
参数【character.only】:指示package或help是否可以假定为字符串的逻辑。
参数【logical.return】:逻辑值。如果为TRUE,则返回FALSE或TRUE以表示结果。
参数【warn.conflicts】:逻辑值。如果为TRUE,则输出有关附加新包的冲突的警告。冲突是函数掩盖函数,或者非函数掩盖非函数。默认值为TRUE,除非在冲突中指定conflicts.policy为FALSE。
参数【verbose】:逻辑值。如果为TRUE,则输出额外的诊断结果。
参数【quitely】:逻辑值。如果为TRUE,则不打印确认附加包的消息,并且大多数情况下,如果附加包失败,则不打印错误/警告。
参数【pkg】:命名包的字符串。
参数【mask.ok】:对象名称的字符向量,当启用严格的冲突检查时,可以屏蔽搜索路径上的对象而不会发出错误信号。
参数【exclude,include,only】:要排除或包含在附加框架中的对象名称的字符向量。在调用library或require时只能使用其中一个参数。
参数【attach.required】:逻辑地指定DESCRIPTION文件的Depends子句中列出的所需包是否应该自动附加。
Details
library (package)和require(package)都以package名称加载包的名称空间,并将其附加到搜索列表中。
Require是为在其他函数内部使用而设计的;如果包不存在,它返回FALSE并给出警告(而不是默认情况下library()所做的错误)。
这两个函数都检查和更新当前附加的包列表,并且不会重新加载已经加载的命名空间。(如果您想重新加载这样一个包,请先调用detach(unload = TRUE)或unloadNamespace。)如果您希望加载一个包而不将其附加到搜索列表中,请参阅requireNamespace。
要在加载包期间抑制消息,请使用suppressPackageStartupMessages:这将抑制来自R本身的所有消息,但不一定是来自包作者的所有消息。
如果library在没有package或help参数的情况下被调用,它会列出lib.loc指定的库中所有可用的包,并在类"libraryIQR"的对象中返回相应的信息。使用.packages(all = TRUE)获取所有可用包的名称,使用installed.packages()获取更多信息。
library(help = somename)计算包somename的基本信息,并在类"packageInfo"的对象中返回这些信息。当与lib.loc的默认值(NULL)一起使用时,附加的包在库之前搜索。
Value
通常,library返回(不可见的)附加包列表,但如果logical.return为TRUE则返回TRUE或FALSE。
当作为library()调用时,它返回一个类“libraryIQR”的对象,对于library(help=),返回一个类“packageInfo”的对象。
Require返回(不可见的)一个逻辑,指示所需的包是否可用。
Conflicts
冲突的处理取决于conficts.policy的设置。如果未设置此选项,则如果参数warn.conflicts为TRUE,则冲突将导致警告消息。如果该选项被设置为字符串"strict",那么所有未解决的冲突都表示错误。
冲突可以使用mask.ok、exclude、include.only解决。使用conflictRules可以指定mask.ok和exclue 的默认值。
如果conflicts.policy设置为 depends.ok,那么由附加已声明的依赖所产生的冲突不会产生错误,但是其他冲突会。
对于大多数需要额外保护以防止意外冲突的用户来说,这可能是最佳设置。
可以通过指定conflicts.policy来进一步调优策略。策略选项作为带有以下字段的命名列表:
- error:逻辑值;如果为TRUE,则将未解决的冲突视为错误。
- warn:逻辑值;除非FALSE在发现冲突时发出警告消息。
- generics.ok:逻辑值;如果为TRUE,则忽略在搜索路径上为函数定义S4泛型所产生的冲突。
- depends.ok:逻辑值;如果为TRUE,则不将与所需包的冲突视为错误。
- can.mask:允许被屏蔽的包名称的字符向量。这些通常是默认附加的基本包。
Examples
library() # list all available packages
library(lib.loc = .Library) # list all packages in the default library
library(help = splines) # documentation on package 'splines'
library(splines) # attach package 'splines'
require(splines) # the same
search() # "splines", too
detach("package:splines")
# if the package name is in a character vector, use
pkg <- "splines"
library(pkg, character.only = TRUE)
detach(pos = match(paste("package", pkg, sep = ":"), search()))
require(pkg, character.only = TRUE)
detach(pos = match(paste("package", pkg, sep = ":"), search()))
require(nonexistent) # FALSE
## Not run:
## if you want to mask as little as possible, use
library(mypkg, pos = "package:base")