1
참고로 전환하면이 질문에 이미 LISP equivalent이 표시되어있는 것으로 보입니다.R S3 일반 기능을 일반
최근에 나는 R베이스 함수 setdiff
에 대한 데이터 프레임 확장을 만들고 싶었고 제네릭이 좋을 것이라고 생각했습니다. 다음은 작동하지만 어색해집니다 :
#' @export setdiff.default
setdiff.default <- setdiff
#' @export
setdiff <- function(x, ...) {
UseMethod("setdiff")
}
#' @export
setdiff.data.frame <- function(A, B) {
A[!duplicated(rbind(B, A))[nrow(B) + 1:nrow(A)], ]
}
패키지를로드하면 기본 기능이 마스킹됩니다. 새 함수에 대한 추가 설명서를 작성하면 다른 .Rd 파일이 만들어지고 원래 기본 R 함수와 경쟁합니다 (R은 ?setdiff
을 실행할 때 원하는 것을 선택하도록 요청합니다).
깨끗한 방법이 있습니까?
내가 문제를 볼 수 없습니다. 도움말 색인이 마스크 기능 도움말 페이지를 보여줄 때 "좋은 점"이라고 생각합니다. '? setMethod' 아래에서 옵션을 보셨습니까? –
그래, 내가 너무 많이 요구할 수도있다. 기본 메서드를 새로운 제네릭과 "병합"하는 방법을 기대했습니다. –