programing

R: 자체 작성 패키지에서 Magritr 파이프 연산자 사용

css3 2023. 6. 9. 22:16

R: 자체 작성 패키지에서 Magritr 파이프 연산자 사용

파이프 오퍼레이터를 사용하고 싶습니다.%>%에 소개된magrittr체인에 직접 쓴 소포에 들어 있는 소포dplyr데이터 변환 magrittr로 나열됩니다.Import에서DESCRIPTION파일. 나만의 패키지를 로드하고 파이프 오퍼레이터를 사용하는 기능을 테스트한 후 다음과 같은 오류 메시지가 표시됩니다.

함수 이름에 오류가 있습니다(매개 변수, : 함수 "%>%"를 찾을 수 없습니다).

변화하는%>%로.magrittr::%>%패키지를 더 이상 빌드할 수 없기 때문에 함수의 소스 코드도 도움이 되지 않습니다.

당신이 그랬다면 제대로 작동했어야 합니다.magrittr에 열거된.Depends그러나 이는 권장되지 않습니다.대신, 당신은 떠나세요.magrittrImports다음 행을 추가합니다.NAMESPACE:

importFrom(magrittr,"%>%")

Writing Extensions를 읽는 것을 제안합니다.당신의 질문은 1.1.3항과 1.5.1항에서 다룹니다.

이제 패키지의 파이프를 더 쉽게 지지할 수 있는 방법이 있습니다.멋진 패키지usethis기능이 있습니다.use_pipe()그 기능은 한 번 실행하면 모든 것이 처리됩니다.이것이 그 방법입니다.use_pipe()기능은 에 설명되어 있습니다.usethis설명서:

패키지에서 내부적으로 Magritr 파이프를 사용하고 패키지 사용자를 위해 다시 내보내는 설정이 필요합니까?

설명의 "가져오기"에 마그리트를 추가합니다.

R/utils-pipe를 작성합니다.필요한 산소 템플릿이 있는 R

하나의 추가 솔루션 - 사용roxygen꾸러미이는 다음의 일부로 구현됩니다.devtools꾸러미한번만devtools설치됨, 호출devtools::document()업데이트합니다.NAMESPACE널 위해서.또한 설명서가 포함된 .Rd 파일을 자동으로 빌드하므로 편리합니다.

형식에 특별한 설명을 추가하기만 하면 됩니다.#' @import packagename해당 패키지에서 모든 기능을 가져오려면 파일로 이동합니다.#' @importFrom packagename functionname함수를 가져옵니다.파일에 이러한 주석을 원하는 만큼 넣을 수 있으므로 각 파일의 맨 위에 주석 집합을 두거나 외부 기능이 필요한 각 기능과 함께 둘 수 있습니다.

그리고 당신은 도망가devtools::document()그리고 그것은 당신의 코드를 구문 분석하여 그 의견들을 찾고, 그리고 나서 적절한 것을 만듭니다.NAMESPACE당신을 위해 파일.만만하다.

R스튜디오를 사용한다고 가정하면 해들리의devtools패키지, 나열됨magrittr의 가져오기 섹션에서DESCRIPTION파일, 여기 제가 만든 단계가 있습니다.%>%내 패키지 함수에서 작업합니다.

첫째, 쓰기 함수foo.R:

#' Convert \code{data.frame} to \code{list}.
#' 
#' @importFrom magrittr %>%
#' @name %>%
#' @rdname pipe
#' @export
#' @param x A \code{data.frame} object.
#' @examples
#' my_result <- foo(iris)
#'
foo <- function(x) {
    x %>%
        as.list()
}

번째, 두째달, 기리번을 합니다.devtools::document().

세번째,달리기devtools::load_all().

이와 같은 파일이 사용자의 컴퓨터에 생성됩니다.R/디렉터리와 당신의 기능은 예상대로 작동할 것입니다.

언급URL : https://stackoverflow.com/questions/27947344/r-use-magrittr-pipe-operator-in-self-written-package