R:未构建的包装小插图

时间:2018-03-08 11:19:34

标签: r r-package vignette

问题

我为公司创建了一个小型内部包。为了描述热使用它,我写了一个小插图。但由于某种原因,当我在RStudio中按安装并重新启动时,不会构建插图。

更多信息

  • 我使用roxygen作为包文档

  • 有趣的是,安装和重启的输出表示它已安装:

    ==> devtools::document(roclets=c('rd', 'collate', 'namespace'))
    
    Updating DataReportR documentation
    Loading DataReportR
    Documentation completed
    
    ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source DataReportR
    
    * installing to library 'C:/Program Files/R/library'
    * installing *source* package 'DataReportR' ...
    ** R
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** installing vignettes
    ** testing if installed package can be loaded
    * DONE (DataReportR)
    
  • devtools::build_vignettes()返回NULL即使行

    Suggests: knitr, rmarkdown
    VignetteBuilder: knitr
    

    包含在说明中。

  • 插图的YAML标题如下所示:

    ---
    title: "My title"
    output: rmarkdown::html_vignette
    vignette: >
      %\VignetteIndexEntry{Generate LaTeX tables for Data Reports}
      %\VignetteEngine{rmarkdown::render}
      %\usepackage[utf8]{inputenc}
    ---
    
  • 我还试图强迫devtools::build(vignettes = TRUE)建立小插图但没有改变。

编辑(更改了YAML标题):

当我在小插图的YAML标题中将%\VignetteEngine{rmarkdown::render}更改为%\VignetteEngine{knitr::rmarkdown}时,devtools::build_vignettes()可以正常工作,并将构建的小插图放在/inst/doc/中。

但是,当我检查 RStudio中的包时,检查在此位置失败:

** installing vignettes
** testing if installed package can be loaded
Error in namespaceExport(ns, exports) : 
  undefined exports: create_var_details, create_var_overview
Error: loading failed
Execution halted
ERROR: loading failed

create_var_detailscreate_var_overview都是导出的函数。这是一个例子:

... 
#' @export
#' 
    create_var_details <- function(...
...

使用旧标题,检查没问题。

1 个答案:

答案 0 :(得分:2)

我发现R没有找到pandoc。因此,我将pandoc路径添加到PATH环境变量中。我还根据@ R18的评论中的建议,将小插图改为%\VignetteEngine{knitr::rmarkdown}

现在,当我点击RStudio中的安装并重新启动时,正确构建了插图。

但是,检查包仍然不起作用。请参阅我的编辑以查看问题。但这是另一个问题:R package: Adding a vignette causes 'undefined exports'