R语言【base】——library,require:加载/连接并列出包

时间:2024-02-22 16:42:32

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")