我该如何编辑R函数的源代码?

5

1
你可以使用getAnywhere(generic_RShiny)来获取函数的代码。要进行编辑,你可以将其粘贴到一个R脚本文件中,进行修改后,将其赋值给一个新对象(比如my_generic_RShiny),然后运行你的新版本函数。 - eipi10
如果您想在将来使用编辑后的函数,您可以保存编辑后的函数脚本,需要时再进行“source”操作;或者您可以创建自己的版本earlywarnings包含编辑后的函数,并安装/加载您的自定义版本的包。 - eipi10
似乎问题的一部分可能是generic_RShiny未被导出; 你是否尝试使用fixearlywarnings:::generic_RShiny附加到你的方法中? - MichaelChirico
3个回答

5

一旦库被加载,使用

trace(函数名称,edit=T)

但要注意该功能将被永久修改(直到重新安装该软件包)。


我使用了这种方法编辑了一个函数,但它似乎不能将Rmd编织成html文件。我能用另一种方法吗? - lil_barnacle
如果你想使用改变的方法来编织Rmd文件。请复制@baskcat回答中提供的方法,然后将其粘贴到你的Rmd文件中并进行编辑。然后,不要调用库函数,而是从你的Rmd文件中调用该方法。 - Nexgea

0
回答 @lil_barnacle 的评论:
如果你想在 Rmd 中使用修改后的方法进行编程,可以复制 @baskcat 的答案中的方法,然后将其粘贴到你的 Rmd 中并进行编辑。接着,不要调用库函数,而是从你的 Rmd 中调用该方法。

这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Zectbumo

0
我知道这个问题很旧,但我实际上是在寻找可以改变函数代码行的'body'函数。这里有一个例子,可以改变函数'my_fun'的第二行。
my_fun <- function(x){
  a <- 2
  b <- 5
  return(a*x+b)
}
my_fun(2)
# 9

body(my_fun)[[2]] <- substitute(a <- 3)

my_fun(2)
# 11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接