【发布时间】:2022-01-26 09:50:32
【问题描述】:
我想在这段代码所在的环境中修改一些代码(或添加/删除)。我发现这个话题真的很有帮助:How to change on the fly a line of an existing function in R,但我遇到的问题是我要修改的功能不在.GlobalEnv 中,我不知道这个环境的名称是什么。
我正在考虑的这个环境可以描述为B 环境,来自我之前的一个问题的答案:What is an environment where exists all objects from all files sourced when running Shiny App?。所以基本上我想在 Shiny App 中更改一些代码。我设法使用environment() 函数找到了环境,但我发现我无法替换代码。
也许我的问题可以用这个代码来显示:
test <- function() 1
test()
#> [1] 1
environment(test)$test <- eval(parse(text = "function() 2"))
test()
#> [1] 1
.GlobalEnv$test <- eval(parse(text = "function() 3"))
test()
#> [1] 3
如何使这行代码:environment(test)$test <- eval(parse(text = "function() 2")) 工作?即如何使用environment()更改对象?
@jpiversen 请允许我向您说明这个问题。
【问题讨论】: