我正在编写一个带有S4类的包,并为该类编写了as.POSIXct
和as.POSIXlt
的方法。我已经编写了文档,一切看起来都很好,只是我想在as.POSIXlt
的文档中引用as.POSIXct
方法,反之亦然。我尝试了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}
倒数第四行是造成问题的那一行。
链接的基本格式是
link{foo}
其中CCD_ 7与CCD_。因此,如果你的另一个包有\alias{as.POSIXlt,abc方法}(注意没有空格),那么
link{as.POSIXlt,abc-method}
只有在链接到其他包时才需要添加[abc]
,然后语义会令人困惑(在link[abc]{foo}
中,foo是HTML帮助页的名称,而不是例如别名)。添加code{}
是标记,因此与建立链接没有直接关系。上面的链接将"as.POSIXlt,abc方法"插入到帮助页面中,这可能比可能存在的任意\alias标记更具信息性(或不具有信息性)。
根据编写R扩展的交叉引用部分,您可以创建到其他帮助页面的链接,如下所示:
code{link[base]{as.POSIXct}}
其中"base"是包的名称(我认为[base]没有必要,但如果它是另一个包,它就会是)