1

我经常使用 Rstudio 的“转到函数定义”(快捷键是 F2)来在许多文件之间导航并快速访问函数的定义/进行更改(打印函数的定义通常是不够的)。

为了使我的分析更快,我的许多功能都使用“memoise”包进行记忆。这一切都很好,但是当我使用“转到函数定义”按钮(或 F2)时,它会将我带到 memoise 函数。这是结果:

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 功能工作的东西。

4

0 回答 0