二元运算符的roxygen 2文档-包括检查时导致警告或错误的示例

9gm1akwq  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(169)

我试着在我的R包中包含二元操作符,当然也想正确地记录它们。在研究了How does Roxygen to handle infix binary operators (eg. %in%)?之后,我尝试了可接受的解决方案变体,但我有一个问题。如果我以1:1的方式复制它,并希望将其应用于我自己的包,并应用@GSee的方法,那么只要我不引入@examples标签,它就可以工作。奇怪的是,@example工作正常,但在RStudio中的包检查过程中会发出警告。
下面是我的尝试:第一个示例(无@示例或@示例):无问题

#' @title
#' Inverse Value Matching
#'
#' @description
#' Complement of \code{%in%}. Returns the elements of \code{x} that are
#' not in \code{y}.
#'
#' @usage x \%nin\% y
#'
#' @param x a vector
#' @param y a vector
#'
#' @export
#' @rdname nin
#'
#' @export
# -----------------------------------------------------------------------------
"%nin%" <- function(x, y) {
  return( !(x %in% y) )
}
# -----------------------------------------------------------------------------

现在使用@example,将通过检查但丢弃警告。

#' @title
#' Inverse Value Matching
#'
#' @description
#' Complement of \code{%in%}. Returns the elements of \code{x} that are
#' not in \code{y}.
#'
#' @usage x \%nin\% y
#'
#' @param x a vector
#' @param y a vector
#'
#' @export
#' @rdname nin
#'
#' @export
#' @example c(1:3) \%nin\% c(3:5)
# -----------------------------------------------------------------------------
"%nin%" <- function(x, y) {
  return( !(x %in% y) )
}
# -----------------------------------------------------------------------------

最后使用@examples,检查失败

#' @title
#' Inverse Value Matching
#'
#' @description
#' Complement of \code{%in%}. Returns the elements of \code{x} that are
#' not in \code{y}.
#'
#' @usage x \%nin\% y
#'
#' @param x a vector
#' @param y a vector
#'
#' @export
#' @rdname nin
#'
#' @export
#' @examples 
#' c(1:3) \%nin\% c(3:5)
# -----------------------------------------------------------------------------
"%nin%" <- function(x, y) {
  return( !(x %in% y) )
}
# -----------------------------------------------------------------------------

我哪里做错了?
所以,在花了一天的时间与它,解决方案:)。
标签@export后面必须跟一个双引号的操作符名,正如@stefan指出的,\是多余的。谢谢,享受您的项目解决方案。

#' @title
#' Inverse Value Matching
#'
#' @description
#' Complement of \code{%in%}. Returns the elements of \code{x} that are
#' not in \code{y}.
#'
#' @usage x \%nin\% y
#'
#' @param x a vector
#' @param y a vector
#'
#' @export "%nin%"
#' @examples
#' Test::`%nin%`(c(1:3), c(3:5)) # result: 1 2
#' c(1:3) %nin% c(3:5)
# -----------------------------------------------------------------------------
"%nin%" <- function(x, y) {
  return( !(x %in% y) )
}
# -----------------------------------------------------------------------------
3bygqnnd

3bygqnnd1#

我回答了上面的问题。看我编辑的帖子。

相关问题