gpt4 book ai didi

r - 替代品(替代品())做什么?

转载 作者:行者123 更新时间:2023-12-01 10:40:11 35 4
gpt4 key购买 nike

我不完全确定我理解 substitute 的作用,尽管我以前在它的代码中使用过。今天在shiny::exprToFunction中遇到了如下几行代码:

function (expr, env = parent.frame(2), quoted = FALSE, caller_offset = 1) 
{
expr_sub <- eval(substitute(substitute(expr)),
...
}

有人能解释一下为什么这里使用嵌套的substitute吗?一个易于运行的示例会很有帮助。

最佳答案

看看

a<-function(aa) {
b(aa)
}

b<-function(bb) {
z(bb)
}

z<-function(zz) {
print(substitute(zz))
print(substitute(substitute(zz)))
print(eval(substitute(substitute(zz)), parent.frame()))
}

q<-5
a(q)
# bb
# substitute(bb)
# aa

第一个/内部替代获取传递给被调用函数的名称/符号。第二个/外部 substitute() 只是将一个 substitute() 命令包裹在发现的名称/符号周围。然后 substitute() 在它来自的父环境中被评估。

使用substitute捕获变量名的方法只有在参数仍然是promises的情况下才有效;也就是说,它们尚未经过评估。

关于r - 替代品(替代品())做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30771626/

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