2012-12-11 5 views
4

:Roxygen은 중위 바이너리 연산자 (예 : % in %)를 어떻게 처리합니까? 간단하고 구체적인 예를 들어

그러나
#' 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에 바이너리 중온 함수에 대한 한 줄짜리 맹목적 인 것처럼 보입니다.하지만 난 그걸 파싱하는 데 어려움을 겪고 있으며, Roxygen 문서에는 무엇을 암시하고 있습니까?

답변

6

사용 섹션에서 %을 탈출해야합니다. 또한, 나는 당신이 내가 개인 패키지에있는 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) 
+0

그건 트릭입니다. 감사! –

+0

수동으로 사용 하시겠습니까? – hadley

+0

@hadley, 그것 없이는'prepare_Rd : PctIn.Rd : 4-6 : 빈 섹션 \ 사용 삭제 '라는 주석이 있습니다. NOTE와 별도로 작동하는 것처럼 보입니다. – GSee

1

나는 및 중위 연산자 (roxygen하지 roxygen2의 말하기) roxygen로 힘든 시간을 가졌다. 여기 내 설정 (R 2.15.1, roxygen 0.1-3)과 함께 작동합니다.

첫 번째 해결책 : 모든 중위 연산자의 Rd 파일을 편집 (grapes ... grapes.Rd을해야한다)과 baskslash \alias, \usage\name 부품의 모든 % 탈출.

두 번째 해결 방법 : 중온 연산자의 설명서에서 @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 = "")