【问题标题】:Linking to an S4 method in a .rd file?链接到 .rd 文件中的 S4 方法?
【发布时间】:2012-08-20 19:20:38
【问题描述】:

我正在编写一个带有 S4 类的包,并且我已经为该类编写了 as.POSIXctas.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}

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

【问题讨论】:

    标签: r package s4 generic-method


    【解决方案1】:

    链接的基本格式是

    \link{foo}
    

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

    \link{as.POSIXlt,abc-method}
    

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

    【讨论】:

    • 没有意识到 R 是关于别名的特定的。谢谢!
    【解决方案2】:

    根据编写 R 扩展的Cross-references section,您可以创建指向其他帮助页面的链接,如下所示:

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

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

    【讨论】:

    • 其次,我觉得没有别的办法了。
    • 我很感激!我读了 WRE 的那部分,但我有点困惑,我不确定它是否能满足我的要求。你的解释很清楚,谢谢!
    • 其实Cross-references section 可能更合适。我会编辑。
    • 实际上,当我运行 R CMD 检查时,我收到了“缺少链接”警告。我添加的链接绝对不满意。我认为 S4 方法的工作方式必须不同......我认为指定包是我需要添加的,但显然不是。
    • 如果你只做\code{\link{as.POSIXct}},它有用吗?否则,您需要显示更多的 .Rd 文件
    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多