Linking to other packages in documentation in roxygen2 in R
RDocumentationRoxygen2R Problem Overview
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}
?
R Solutions
Solution 1 - R
You have to type \link[pkg]{function}
e.g. \link[stringi]{stri_c}
Solution 2 - R
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.
Solution 3 - R
There are two ways to achieve this, using:
.Rd
syntax
1. 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
Solution 4 - R
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 as IRanges).
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.