roxygen (2)로 클래스를 문서화하는 경우 제목과 설명 / 세부 사항을 지정하는 것은 함수, 메서드, 데이터 등과 동일하게 나타납니다. 그러나 슬롯과 상속은 고유 한 종류의 동물입니다. roxygen2에서 S4 클래스를 문서화하기위한 현재 또는 계획된 모범 사례는 무엇입니까?
실사 :
@slot
roxygen의 초기 설명에서 태그에 대한 언급을 발견 했습니다.
2008 R- 포지 메일 링리스트 포스트
는 이것이 죽었고 @slot
roxygen에 대한 지원이 없음을 나타냅니다 .
이것이 roxygen2의 사실입니까? 앞서 언급 한 게시물은 사용자가 LaTeX 마크 업을 사용하여 항목별로 목록을 작성해야한다고 제안합니다. 예를 들어 클래스를 확장하는 새로운 S4 클래스 "character"
는 다음과 같이 코딩되고 문서화됩니다.
#' The title for my S4 class that extends \code{"character"} class.
#'
#' Some details about this class and my plans for it in the body.
#'
#' \describe{
#' \item{myslot1}{A logical keeping track of something.}
#'
#' \item{myslot2}{An integer specifying something else.}
#'
#' \item{myslot3}{A data.frame holding some data.}
#' }
#' @name mynewclass-class
#' @rdname mynewclass-class
#' @exportClass mynewclass
setClass("mynewclass",
representation(myslot1="logical",
myslot2="integer",
myslot3="data.frame"),
contains = "character"
)
그러나이 작동하지만,이 \describe
, \item
슬롯을 문서화하기위한 접근 방법은 점에서 더 없다, roxygen (2)의 나머지 부분과 일치하지 않는 것 같다 @
-delimited 태그와 슬롯에서 어떤 반대와 미등록 갈 수있다 roxygenize()
. 또한 정의되는 클래스의 상속을 문서화하는 일관된 방법에 대해서는 아무 것도 말하지 않습니다. @import
태그를 사용하여 종속성이 여전히 정상적으로 작동한다고 생각합니다 (특정 슬롯이 다른 패키지의 비 기본 클래스가 필요한 경우) .
요약하면, roxygen (2) 슬롯에 대한 현재 모범 사례는 무엇입니까?
현재 고려해야 할 세 가지 옵션이있는 것 같습니다.
- A-항목 별 목록 (위의 예와 같이).
- B
@slot
-...하지만 여분의 태그 / 구현으로 놓쳤습니다. 위의 예제에서 항목 별 목록의 대체로 포함 된 버전에서 roxygen / roxygen2로 @slot을 사용할 수 없었습니다. 다시, 위의 예는 roxygen (2)에서 작동합니다.- C-
@param
같은 것을 달성 하는 슬롯을 지정하기위한 대체 태그 .
github 의 roxygen2
개발 페이지에 게시 한 게시물 에서이 질문을 빌리거나 연장하고 있습니다.
setClass
보다 적은 수의 문장을 가지고있어서 다행 setMethod
입니다. 변경이 한 번 @slot
구현되면 너무 고통스럽지 않습니다.
@slot
아마 당신이 장기적으로 원하는 것이지만, 먼저 구현되어야합니다.