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


R removeSource 从函数或语言对象中删除存储的源


R语言 removeSource 位于 utils 包(package)。

说明

options("keep.source")TRUE 时,函数的原始源代码的副本将与其一起存储。类似地,parse() 可以保留表达式的格式化源。此类源引用属性由 removeSource() 从对象中删除。

用法

removeSource(fn)

参数

fn

要从中删除源的 function 或其他语言对象(满足 is.language )。

细节

如果是函数或递归语言部分,则通过递归清理 body(fn) 来删除 "srcref" 和相关属性。

fn 对象的副本(已删除源)。

例子

## to make this act independently of the global 'options()' setting:
op <- options(keep.source = TRUE)
fn <- function(x) {
  x + 1 # A comment, kept as part of the source
}
fn
names(attributes(fn))       # "srcref" (only)
names(attributes(body(fn))) # "srcref" "srcfile" "wholeSrcref"
f2 <- removeSource(fn)
f2
stopifnot(length(attributes(fn)) > 0,
          is.null(attributes(f2)),
          is.null(attributes(body(f2))))

## Source attribute of parse()d expressions,
##	  have {"srcref", "srcfile", "wholeSrcref"} :
E  <- parse(text ="a <- x^y  # power")  ; names(attributes(E ))
E. <- removeSource(E)                   ; names(attributes(E.))
stopifnot(length(attributes(E ))  > 0,
          is.null(attributes(E.)))
options(op) # reset to previous state

也可以看看

is.language 关于语言对象。

srcref 用于说明源引用记录,deparse 用于说明如何解析函数。

相关用法


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