R: 자체 작성 패키지에서 Magritr 파이프 연산자 사용
파이프 오퍼레이터를 사용하고 싶습니다.%>%에 소개된magrittr체인에 직접 쓴 소포에 들어 있는 소포dplyr데이터 변환 magrittr로 나열됩니다.Import에서DESCRIPTION파일. 나만의 패키지를 로드하고 파이프 오퍼레이터를 사용하는 기능을 테스트한 후 다음과 같은 오류 메시지가 표시됩니다.
함수 이름에 오류가 있습니다(매개 변수, : 함수 "%>%"를 찾을 수 없습니다).
변화하는%>%로.magrittr::%>%패키지를 더 이상 빌드할 수 없기 때문에 함수의 소스 코드도 도움이 되지 않습니다. 
당신이 그랬다면 제대로 작동했어야 합니다.magrittr에 열거된.Depends그러나 이는 권장되지 않습니다.대신, 당신은 떠나세요.magrittr에Imports다음 행을 추가합니다.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
'programing' 카테고리의 다른 글
| Wordpress 무한 스크롤로 제품을 로드한 후 Woocommerce 스크립트를 다시 초기화합니다. (0) | 2023.06.09 | 
|---|---|
| 중력 양식 이미지 업로드 미리 보기 (0) | 2023.06.09 | 
| 레일 4: 사용 가능한 데이터 유형 목록 (0) | 2023.06.09 | 
| python/matplotlib을 사용하여 3D 플롯에 대한 "카메라 위치"를 설정하는 방법은 무엇입니까? (0) | 2023.06.09 | 
| Vuex getter는 항상 null을 반환합니다. (0) | 2023.06.09 |