gpt4 book ai didi

r - 如何获取内部函数以在 R 控制台中测试它们

转载 作者:行者123 更新时间:2023-12-04 09:13:35 25 4
gpt4 key购买 nike

是否可以从 R 控制台获取和使用内部函数?

例如,我在名为 script.R

的文件中定义了以下函数
outer_fun = function() {
inner_fun = function() {
print('inner_fun')
}
print('outer_fun')
}

sourcing script.Router_fun 添加到全局环境,但不添加 inner_fun。但是我需要访问 inner_fun 来测试它。因此,我必须在任何函数范围之外定义 inner_fun。但是随后代码的组织变得困惑,这使得维护变得困难。

最佳答案

我认为将 inner_fun 添加到全局环境的唯一可能方法是通过以下方式在全局环境中运行函数体

eval(body(outer_fun))
inner_fun() # is available now

如果outer_fun需要一些参数来运行,你可以将它们添加到全局环境中。

但我认为如果您正确使用 Debug模式,您真的不需要这样的 hack 来“测试”功能。尝试

outer_fun = function() {
browser()
inner_fun = function() {
print('inner_fun')
}
print('outer_fun')
}

然后在控制台上执行以下操作:

> outer_fun()
Called from: outer_fun()
Browse[1]> inner_fun()
[1] "inner_fun"
Browse[1]>

关于r - 如何获取内部函数以在 R 控制台中测试它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845719/

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