2014-02-13 44 views
3

每次我试图roxygenize包我得到这个错误:Roxygenize失败... is.call(呼叫)非真

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/") 

有没有人遇到过这个问题?我甚至不知道如何进一步调试它。

+2

你试过'选项(错误=恢复)',然后浏览级别7+?这是我在这种情况下所做的。希望可变内容将有所帮助。另外,在doc.credobb.r中看起来像错误(是否真的是一个r文件?)。 – BrodieG

+0

谢谢布罗迪,这让我感到它。我犯了一个愚蠢的错误,而不是''package'的文档块末尾的'NULL',我有'NA'。 –

+1

请在github上提交错误报告。 – hadley

回答

2

如果不使用典型的NULL值,而是在包的文档末尾放置值,则会使用NA发生此错误。只需更新至NULL将删除该错误。

+2

是的,这是真的。然而,这是非常烦人的,因为'NA'在roxygen vignette中被特别作为hello-world的例子给出。是的,小插曲来自roxygen,而不是roxygen2,但是,roxygen2没有小插曲,howto,教程或FAQ。非常适合文学编程。 – January

+1

Roxygen2确实有一个方法,它只是一种隐藏:http://adv-r.had.co.nz/请参阅“文档”标题下的链接 –

+0

可爱。谢谢,这会为我节省很多时间。 – January