【问题标题】:Roxygenize fails with... is.call(call) is not TRUERoxygenize 失败... is.call(call) is not TRUE
【发布时间】:2014-02-13 03:34:13
【问题描述】:

每次我尝试 roxygenize 一个包我都会收到这个错误:

Error: is.call(call) is not TRUE

traceback()的结果:

11: stop(sprintf(ngettext(length(r), "%s is not TRUE", "%s are not all TRUE"), 
        ch), call. = FALSE, domain = NA)
10: stopifnot(is.call(call))
9: standardise_call(call, env)
8: object_from_call(call, env, preref)
7: (function (call, ref, comment_ref) 
   {
       preref <- parse.preref(as.character(comment_ref))
       if (is.null(preref)) 
           return()
       preref$object <- object_from_call(call, env, preref)
       preref$srcref <- list(filename = file, lloc = as.vector(ref))
       add_defaults(preref)
   })(dots[[1L]][[1L]], dots[[2L]][[1L]], dots[[3L]][[1L]])
6: mapply(FUN = f, ..., SIMPLIFY = FALSE)
5: Map(extract, parsed, refs, comment_refs)
4: FUN(c("/home/path/to/package/file1.r", 
   "/home/path/to/package/file2.r", 
   .... # list of files truncated 
   "/home/path/to/package/doc.file.r")[[25L]], 
       ...)
3: lapply(r_files(base_path), parse_file, env = env)
2: parse_package(base_path, load_code)
1: roxygenize("~/Current/r/path/to/package/")

以前有人遇到过这个问题吗?我什至不确定如何进一步调试它。

【问题讨论】:

  • 您是否尝试过options(error=recover),然后在 7 级以上浏览?这就是我对这种情况所做的。希望可变内容会有所帮助。此外,doc.credobb.r 中似乎存在错误(这真的是一个 r 文件吗?)。
  • 谢谢布罗迪,这让我明白了。我犯了一个愚蠢的错误,而不是 NULL 在我的文档块末尾的 ?package 我有 NA
  • 请在 github 上提交错误报告。

标签: r roxygen2


【解决方案1】:

如果使用NA 而不是放在包文档末尾的典型NULL 值,则会发生此错误。只需更新到 NULL 即可消除错误。

【讨论】:

  • 是的,这是真的。然而,这很烦人,因为NA 在 roxygen 小插图中专门作为 hello-world 示例给出。是的,小插图来自 roxygen,而不是 roxygen2,但是,roxygen2 没有小插图、howto、教程或常见问题解答。文学编程就这么多。
  • Roxygen2 确实有一个操作方法,只是有点隐藏:adv-r.had.co.nz 请参阅标题“文档”下的链接
  • 可爱。谢谢,这会为我节省大量时间。
猜你喜欢
  • 2020-06-05
  • 2021-03-07
  • 2020-11-24
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 2016-04-22
相关资源
最近更新 更多