当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R get 返回命名对象的值


R语言 get 位于 base 包(package)。

说明

按名称搜索一个对象 ( get ) 或零个或多个对象 ( mget )。

用法

get(x, pos = -1, envir = as.environment(pos), mode = "any",
    inherits = TRUE)

mget(x, envir = as.environment(-1), mode = "any", ifnotfound,
     inherits = FALSE)

dynGet(x, ifnotfound = , minframe = 1L, inherits = FALSE)

参数

x

为了get,对象名称(以字符串或符号形式给出)。
为了mget,对象名称的字符向量。

pos, envir

在哪里寻找对象(参见“详细信息”); if 省略搜索,就像对象的名称出现在表达式中时未加引号一样。

mode

寻求对象的模式或类型:请参阅“详细信息”部分。

inherits

是否应该搜索环境的封闭框架?

ifnotfound

为了mget, Alist未找到该项目时要使用的值:如有必要,它将被强制为列表。
为了dynGet任何R对象,例如调用stop().

minframe

指定要查看的最小帧号的整数。

细节

pos 参数可以通过以下几种方式指定查找对象的环境: 作为正整数(search 列表中的位置);作为搜索列表中元素的字符串名称;或作为 environment(包括使用 sys.frame 访问当前活动的函数调用)。默认值 -1 表示调用 get 的当前环境。 envir 参数是指定环境的另一种方法。

这些函数查看每个名称 x 是否在指定环境中都有绑定到它的值。如果inheritsTRUE 并且在指定环境中未找到x 的值,则搜索环境的封闭框架,直到遇到名称x。有关环境及其 shell 结构的详细信息,请参阅environment 和“R 语言定义”手册。

如果指定了mode,则仅查找该类型的对象。 mode 这里混合了 typeofmode 的含义: "function" 涵盖原始函数和运算符, "numeric""integer""double" 均指任何数值类型, "symbol""name" 等效,但必须使用 "language" (而不是 "call""(" )。

对于 mgetmodeifnotfound 的值可以与 x 相同长度或长度为 1。参数 ifnotfound 必须是一个列表,其中包含要使用的值(如果请求的项目为未找到或具有一个参数的函数,如果未找到该项目,将调用该函数,参数为所请求的项目的名称。

dynGet() 有点实验性,可在另一个函数中使用。它在调用者中查找对象,即函数的 sys.frame() 。谨慎使用。

对于 get ,找到的对象。如果没有找到对象,则会产生错误。

对于 mget ,对象的命名列表(通过 ifnotfound 找到或指定)。

注意

a <- get(nam) 的逆向(或 “inverse”)是 assign(nam, a) ,将 a 分配给名称 nam

inherits = TRUE是默认值getR但对于 S 则不然,它有不同的含义。

例子

get("%o%")

## test mget
e1 <- new.env()
mget(letters, e1, ifnotfound = as.list(LETTERS))

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

exists 用于检查对象是否存在; get0 用于检查存在性和获取对象的有效方法。

assignget() 的逆,见上文。

使用 getAnywhere 在任何地方(包括其他命名空间)搜索对象,并使用 getFromNamespace 在特定命名空间中查找对象。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Return the Value of a Named Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。