gpt4 book ai didi

r - 获取 R 中预定义函数的解析树

转载 作者:行者123 更新时间:2023-12-04 17:10:29 25 4
gpt4 key购买 nike

我觉得这是一个相当基本的问题,但我无法弄清楚。

如果我在 R 中定义了一个函数,我以后如何使用该函数的名称来获取它的解析树。我不能只用 substitute因为这只会返回其参数的解析树,在这种情况下只是函数名称。

例如,

> f <- function(x){ x^2 }
> substitute(f)
f

我应该如何使用函数名称访问函数的解析树?例如,我将如何获得 substitute(function(x){ x^2 }) 的值没有明确写出整个函数?

最佳答案

我不确定其中哪些符合您的需求:

 eval(f)
#function(x){ x^2 }

identical(eval(f), get("f"))
#[1] TRUE
identical(eval(f), substitute( function(x){ x^2 }) )
#[1] FALSE

deparse(f)
#[1] "function (x) " "{" " x^2" "}"

body(f)
#------
{
x^2
}
#---------

eval(parse(text=deparse(f)))
#---------
function (x)
{
x^2
}
#-----------

parse(text=deparse(f))
#--------
expression(function (x)
{
x^2
})
#--------

get("f")
# function(x){ x^2 }

打印表示可能不会显示返回值的全部功能。
 class(substitute(function(x){ x^2 }) )
#[1] "call"
class( eval(f) )
#[1] "function"

关于r - 获取 R 中预定义函数的解析树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com