构建简单的测试包以解决此问题后,运行Rcmd.exe INSTALL --nomultiarch --with-keep.source simpleTest时收到以下警告:

* installing to library 'C:/Users/user/Documents/R-dev'
* installing *source* package 'simpleTest' ...
** R
** preparing package for lazy loading
** help
*** installing help indices
  converting help for package 'simpleTest'
    finding HTML links ...    hello                                   html
Rd warning: C:/user/RPackages/simpleTest/man/hello.Rd:11: missing file link 'transmute'
 done
** building package indices
** testing if installed package can be loaded
* DONE (simpleTest)

当您链接到指向其他名称的Rd文件的函数时,就会发生此问题。例如,在我的simpleTest包中,文档链接到dplyr::mutate()dplyr::transmute(),这两个文档都记录在mutate.Rd文件中。前一个链接不会引起Rd警告,而后者则不会。但是,当您查看当前软件包的帮助页面时,这两个链接都可以使用。

simpleTest包的.R文件包含在下面。我运行devtools::document(),然后在框架包目录中构建该包。

您好。R
#' print hello
#'
#' This does something less complicated than \code{\link[dplyr:mutate]{dplyr::mutate()}}
#' and \code{\link[dplyr:transmute]{dplyr::transmute()}}.

#' @export
hello <- function() {
  print("Hello, world!")
}

最佳答案

这是因为链接是基于文件名而不是别名创建的。如果仅使用\link{foo}foo是一个主题(因此可以使用别名而不会出现问题)。但是,您现在可以使用以下任何一种形式:

\link[pkg]{foo}
\link[pkg:foo]{bar}
foo必须是一个文件,因此您只能使用名称,不能使用别名。如果检查?dplyr::mutate,您会看到mutate是名称(左上角),而transmute是别名。因此,当您尝试使用别名时,链接将(可能)有效,但是您将看到看到的警告。

为了避免这种情况,您需要:
\link[dplyr:mutate]{dplyr::transmute()}

供引用:https://cran.r-project.org/doc/manuals/R-exts.html#Cross_002dreferences

关于r - 在RStudio中构建软件包时,如何解决Rd警告 "missing file link"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48430093/

10-11 17:37