6

単純で具体的な例として:

#' Inverse Value Matching
#' 
#' 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%" <- function(x, y) {
  return( !(x %in% y) )
}

ただし、パッケージをビルドしようとすると、関数が無視され、ドキュメントが生成されないようです。

http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Documenting-functionsにバイナリインフィックス関数に関する1行の宣伝文句があるようですが、私は苦労していますそれを解析する時間、そしてそれがRoxygenのドキュメントに何を意味するか。

4

2 に答える 2

8

%使用法セクションでsをエスケープする必要があります。また、私はあなたが指定する必要があるかもしれないと思いますrdname

#' Inverse Value Matching
#' 
#' 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
"%nin%" <- function(x, y) {
  return( !(x %in% y) )
}

これが私が個人用パッケージに持っている関数です。この関数を実際に使用したことはないと思いますがroxygenize、ヘルプファイルが作成され、パッケージが渡されR CMD checkます。

#' percent in
#' 
#' calculate the percentage of elements of \code{table} that are in \code{x}
#' 
#' @param x vector or NULL: the values to be matched
#' @param table vector or NULL: the values to be matched against
#' @return percentage of elements of \code{x} that are in \code{table}
#' @author gsee
#' @usage x \%pctin\% table
#' @examples
#' letters[1:10] %pctin% letters[1:3] # 30% of the second arg ar in the first
#' @export
#' @rdname PctIn
"%pctin%" <- function(x, table) length(x[x %in% table])/length(x)
于 2012-12-11T23:10:37.393 に答える
1

私は(notと言えば)中置演算子で苦労しましroxygenた。これが私のセットアップ(2.15.1、0.1-3 )で機能したものです。roxygenroxygen2Rroxygen

最初の解決策:Rdすべての中置演算子(である必要があります)のファイルを編集し、、およびパーツのすべてに中置grapes ... grapes.Rd記法でエスケープします。%\alias\usage\name

2番目の解決策:中置演算子のドキュメントでタグ@nameと@usageを指定し、をエスケープし%ます。次に例を示します。

##' Concatenates two strings
##'
##' @name \%+\%
##' @usage \%+\%(x, y)
##' @title Concatenation operator.
##' @param a String.
##' @param b String.
##' @return Same as paste0(a, b).
"%+%" <- function(a, b) paste(a, b, sep = "")
于 2014-03-08T10:47:24.240 に答える