我经常使用Rstudio的“转到函数定义”(快捷键为F2),以便在许多文件之间导航并快速访问函数的定义/进行更改(打印函数的定义通常是不够的)。
为了使我的分析更快,我的许多功能都通过“ memoise”软件包进行了记忆。一切都很好,但是当我使用“转到功能定义”按钮(或F2)时,它将带我进入备忘录功能。结果是:
function (Date = Sys.Date(), Symbol)
{
hash <- `_digest`(c(list(Date, Symbol), lapply(`_additional`,
function(x) eval(x[[2L]], environment(x)))), algo = "sha512")
if (`_cache`$has_key(hash)) {
res <- `_cache`$get(hash)
}
else {
res <- withVisible(`_f`(Date = Date, Symbol = Symbol))
`_cache`$set(hash, res)
}
if (res$visible) {
res$value
}
else {
invisible(res$value)
}
}
一个注释-我尝试定义该函数,并在其下方给出其备注: foo <-function(x){return(x)} foo <-memoise :: memoise(foo)
但是当我在linux上运行它时,任何时候调用foo都会遇到无限循环。奇怪的是,它在Windows上运行良好(而F2函数通过这种方法在Windows上运行!)。我需要可以在linux系统上运行并具有F2功能的产品。