首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >S4类交叉引用-什么是适当的语法?

S4类交叉引用-什么是适当的语法?
EN

Stack Overflow用户
提问于 2016-04-12 17:12:28
回答 1查看 458关注 0票数 3

我正在编写一个R包,目前正在通过R CMD check运行devtools::check()

roxygen2中,有一个引用S4类的函数的(这两个函数都返回该类的对象):

代码语言:javascript
复制
#' @return An object of class \code{\link{mod_imputeMulti}}
#' @aliases mod_imputeMulti
#' @seealso \code{\link{multinomial_em}}, \code{\link{multinomial_impute}}

然而,我收到以下警告:

具有重复别名‘mod_imputeMulti’的Rd文件: 'multinomial_data_aug.Rd‘'multinomial_em.Rd’

如果我不使用第二行-- @aliases标记,我会收到这样的警告,尽管我do有一个链接:

检查Rd交叉参照..。警告 缺少文档对象‘multinomial_data_og.rd’:'mod_imputeMulti‘中的链接 缺少文档对象‘多项式_em.RD’:'mod_imputeMulti‘中的链接 参见“书写R扩展”手册中的“交叉引用”部分。

注意:向\code{\link{mod_imputeMulti}}添加@seealso不会更改此(第二个)警告

正确的语法是什么?

我看过很多参考资料,但在任何地方都找不到解决方案:

我希望这对某人来说是容易的-谢谢你的帮助!

编辑:

S4类文档如下所示:

代码语言:javascript
复制
#' Class "mod_imputeMulti"
#'  
#' @name mod_imputeMulti-class
#' @description A multivariate multinomial model imputed by EM or Data Augmentation is 
#' represented as a \code{\linkS4class{mod_imputeMulti}} object. A complete 
#' dataset and model is represented as an \code{\linkS4class{imputeMulti}} object.
#' Slots for \code{mod_imputeMulti} objects include: (1) the modeling method; 
#' (2) the call to the estimation function; (3) the number of iterations in estimation;
#' (4) the final log-likelihood; (5) the conjugate prior if any; (6) the MLE estimate of
#' the sufficient statistics and parameters.
#' @docType class
#' @section Objects from the class: Objects are created by calls to
#' \code{\link{multinomial_impute}}, \code{\link{multinomial_em}}, or
#' \code{\link{multinomial_data_aug}}.
#' @seealso \code{\link{multinomial_impute}}, \code{\link{multinomial_em}}, 
#' \code{\link{multinomial_data_aug}}
#' @export
setClass("mod_imputeMulti",
         representation= list(
           method= "character",
           mle_call= "call",
           mle_iter= "numeric",
           mle_log_lik= "numeric",
           mle_cp= "character",
           mle_x_y= "data.frame"),
         validity= function(object) {
           if (!object@method %in% c("EM", "DA", "NULL")) {
             return("Currently only EM and DA methods are defined.")
           } else if (object@mle_iter < 0) {
             return("A negative iteration was given.")
           }
           return(TRUE)
         }
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-13 16:35:19

是的,这是一个相对简单的修补程序。

正如您在OP底部的S4类文档中看到的那样,请注意名称是mod_imputeMulti-class,而不是mod_imputeMulti

我需要添加"-class"。不需要@aliases标记。

代码语言:javascript
复制
#' @return An object of class \code{\link{mod_imputeMulti-class}}

此外,感谢@thomas指出使用@slot正确地将roxygen2标记转换为man/*.Md文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36579892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档