简体   繁体   中英

Linking to other packages in documentation in roxygen2 in R

I am wondering it there exists a method to link to function from other package when I'm trying to write a documentation for new package using roxygen2 . Something like \link{pck=PACKAGE_NAME, fun=FUNCTION_NAME} ?

你必须输入\link[pkg]{function}例如\link[stringi]{stri_c}

Roxygen2 now also supports documentation written in markdown.

The markdown syntax is for the link is [foo::bar()] which is translated to \code{\link[foo:bar]{foo::bar()}} in the generated .Rd file. (See Roxygen2 vignette .)

Note that you may need to specifically turn on Markdown support by writing Roxygen: list(markdown = TRUE) in your DESCRIPTION file, or by putting an #' @md comment if you want to enable markdown only for a specific man page. This is also explained at the very top of the linked vignette. (Thanks to @Tjebo for the comment)

Note that there are two colons in the markdown version whereas there is only one colon in the Rd version.

There are two ways to achieve this, using:

1. .Rd syntax

From "R packages" book :

  • \code{\link{function}} - function in this package.
  • \code{\link[MASS]{abbey}} - function in another package.
  • \link[=dest]{name} - link to dest, but show name.
  • \code{\link[MASS:abbey]{name}} - link to function in another package, but show name.
  • \linkS4class{abc} - link to an S4 class.

2. markdown syntax

From roxygen2 vignette

roxygen2 comment description generated Rd code
[func()] func() in this package \code{\link[=func]{func()}}
[pkg::func()] func() in the pkg \code{\link[pkg:func]{pkg::func()}}
[thing] topic in this package \link{thing}
[pkg::thing] topic in the pkg \link[pkg:thing]{pkg::thing}
[`thing`] topic in this package \code{\link{thing}}
[`pkg::thing`] topic in the pkg \code{\link[pkg:thing]{pkg::thing}}

Remember to put Roxygen: list(markdown = TRUE) in the DESCRIPTION
Markdown shortcodes available from roxygen2>=6.0.0

In addition to the answer by potockan :
Some packages document several functions in a single help page. For example, the trim function from Bioconductor package GenomicRanges is documented in intra-range-methods (which is also the name of a help page from other packages such asIRanges ).

To link to the right page with roxygen2 you can use:

\link[GenomicRanges:intra-range-methods]{trim} 

or

\code{\link[GenomicRanges:intra-range-methods]{trim}}  

to format the text correctly.

The help page will only show trim but will link to the right help page.

To link to a function, we slightly abuse markdown syntax by using [function()] or [pkg::function()] .

  • Re-document your package by pressing Cmd/Ctrl + Shift + D.

  • Build and install your package by clicking in the build pane or by pressing Ctrl/Cmd + Shift + B. This installs it in your regular library, then restarts R and reloads your package.

  • Preview documentation with ?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM