4

我正在编写一个带有 S4 类的包,并且我已经为该类编写了as.POSIXct方法as.POSIXlt。我已经编写了文档,一切看起来都很好,除了我想引用as.POSIXct文档中的方法,as.POSIXlt反之亦然。我试过\S4method{coerce}{abc, POSIXct}(from, to), (其中 'abc' 是 S4 类),但这应该只放在该\usage部分中,这不是我想要的。有没有办法做到这一点?对我来说这似乎很奇怪,这不会被允许。

我意识到可以组合这些 .rd 文件并避免这个问题,但我正在尝试尽可能多地了解 R 中的类和包,所以无论如何这对我来说很感兴趣。

这是 .Rd 文件之一的骨架:

\name{as.POSIXct-methods}
\docType{methods}
\alias{as.POSIXct-methods}
\alias{as.POSIXct,ANY-method}
\alias{as.POSIXct,abc-method}
\title{\code{abc} Method for Function \code{as.POSIXct}}
\description{
\code{as.POSIXct} method to coerce timestamps in \code{abc} objects into 
\code{POSIXct} format.
}
\section{Methods}{
\describe{
~~description here~~

\item{\code{signature(x = "ANY")}}{
default implementation (from base)
}

\item{\code{signature(x = "abc")}}{
implementation for \code{\link{abc}} objects. 
~~more description of function~~
See \code{\linkS4class{abc}} for more about abc objects.
See also \code{\link[abc]{as.POSIXlt}} for the corresponding \code{POSIXlt} method.
}
}}
\keyword{methods}

倒数第四行是引起问题的行。

4

2 回答 2

2

根据编写 R 扩展的交叉引用部分,您可以创建指向其他帮助页面的链接,如下所示:

\code{\link[base]{as.POSIXct}}

其中“base”是包的名称(我认为 [base] 不是必需的,但如果它是另一个包,那就是)

于 2012-08-20T19:27:25.783 回答
2

链接的基本格式是

\link{foo}

wherefoo出现在一些帮助页面(在同一个包中)作为\alias{foo}. 所以如果你的其他包有 \alias{as.POSIXlt,abc-method} (注意没有空格)那么

\link{as.POSIXlt,abc-method}

仅当链接到其他包时才需要添加[abc],然后语义会令人困惑(在 中\link[abc]{foo},foo 是 HTML 帮助页面的名称,而不是例如别名)。添加\code{}是标记,因此与建立链接没有直接关系。上面的链接将“as.POSIXlt,abc-method”插入到帮助页面中,这可能比可能存在的任意 \alias 标记提供更多信息(或没有)。

于 2012-08-20T20:23:20.390 回答