2014-02-13 64 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