R语言
body
位于 base
包(package)。 说明
获取或设置函数的主体,它本质上是函数定义的全部内容,但其形式参数(formals
),请参阅“详细信息”。
用法
body(fun = sys.function(sys.parent()))
body(fun, envir = environment(fun)) <- value
参数
fun |
函数对象,或参见“详细信息”。 |
envir |
定义函数的环境。 |
value |
一个对象,通常是language object:请参阅“值”部分。 |
细节
对于第一种形式,fun
可以是命名要操作的函数的字符串,从父框架中查找。如果未指定,则使用调用body
的函数。
除了最简单的之外,所有函数的主体都是大括号表达式,即对 {
的调用:有关如何创建此类调用的信息,请参阅“示例”部分。
值
body
返回指定函数的主体。这通常是 language object ,最常见的是对 {
的调用,但它也可以是 symbol
例如 pi
或作为返回值的常量(例如 3
或 "R"
)的函数。
替换形式将函数的主体设置为右侧的对象,并(可能)重置函数的 environment
,并删除 attributes
。如果 value
属于 "expression"
类,则第一个元素用作主体:任何其他元素都将被忽略,并带有警告。
例子
body(body)
f <- function(x) x^5
body(f) <- quote(5^x)
## or equivalently body(f) <- expression(5^x)
f(3) # = 125
body(f)
## creating a multi-expression body
e <- expression(y <- x^2, return(y)) # or a list
body(f) <- as.call(c(as.name("{"), e))
f
f(8)
## Using substitute() may be simpler than 'as.call(c(as.name("{",..)))':
stopifnot(identical(body(f), substitute({ y <- x^2; return(y) })))
也可以看看
(非原始)函数的三个部分是 formals
、 body
和 environment
。
相关用法
- R basename 操作文件路径
- R bindenv 绑定和环境锁定、主动绑定
- R bitwise 按位逻辑运算
- R backsolve 求解上三角系统或下三角系统
- R bquote 表达式中的部分替换
- R builtins 返回所有内置对象的名称
- R bincode Bin 数值向量
- R balancePOSIXlt 平衡“不规则”和超出范围的 POSIXlt 日期时间
- R by 将函数应用于按因子拆分的 DataFrame
- R browserText 检索浏览器调用提供的值的函数
- R base-defunct 包库中已失效的函数
- R browser 环境浏览器
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Access to and Manipulation of the Body of a Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。