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 |