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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。