가져온 패키지의 변경 사항을 재현 가능하게 추적하기 위해의 drake
사용을 제안하는 힌트 / 제안 / 경고를 문서 에서 발견 expose_imports
했지만 문서는 이의 올바른 사용법에 대해 비교적 간단합니다.
이제를 expose_imports
사용하여 수정하도록 설계된 동작의 예를 목격했으며 사용 drake
을 시작하고 싶습니다.
제 경우에는 추적되지 않은 종속성이 였는데 forcats
, 버전 0.4.0
에서는 fct_collapse
(내 함수 중 하나 에서 사용됨)에 버그 가있어서 출력 요소에 잘못된 그룹을 할당합니다.
0.4.0.9000
이 버그를 해결 0.4.0.9000
하고 얼마 전에로 업데이트 했지만 이전 버전에 대해 실행해야하는 대상이 무효화되지 않았 음을 확인했습니다.
이것이 expose_imports
완화 될 수 있는 문제라고 생각하지만 실제로 사용하는 방법 / 어디서 이해하지 못합니다.
my.package
내 drake
계획에서 다음과 같이 범위가 지정된 호출을 하면 :
plan <- drake::drake_plan(
mtc = mtcars,
mtc_xformed = my.package::transfom_mtc(mtc)
)
그리고 my.package::transform_mtc()
다른 패키지에 의존 관계 (dependencies),가 (예를. forcats
후) :
expose_imports
?
prework
인수에서 make
?my.package/R/
?expose_imports("my.package")
? 또는expose_imports("forcats")
이것에 대한 약간의 설명은 굉장 할 것입니다.
expose_imports()
대부분 업데이트 / 다시 설치하는 패키지 용입니다. 예를 들어 새로운 통계 방법을 구현하기 위해 패키지를 작성하고 패키지가 아직 개발 중이라고 가정 해 보겠습니다. 한편, 방법에 대한 저널 기사를 작성하고 있으며 drake
시뮬레이션 연구를 실행하고 원고를 편집 할 수있는 재현 가능한 파이프 라인이 있습니다. 여기서 패키지를 변경할 때 종이를 새로 고치는 것이 중요합니다. 에서 여기에 프로젝트 원형 , 당신의 R/packages.R
파일은 다음과 같이 보일 것입니다 :
library(drake)
library(tidyverse)
library(yourCustomPackage)
expose_imports(yourCustomPackage)
그런 다음 계획은 yourCustomPackage
.
plan <- drake_plan(
analysis = custom_method(...) # from yourCustomPackages
# ...
)
이제, drake
변화에 대응 목표를 무효화 custom_method()
의 중첩 된 종속 기능과 함께, custom_method()
에서 yourCustomPackages
, 그리고에서와 의존성의 의존성 yourCustomPackages
등 (확인 vis_drake_graph()
직접 볼 수 있습니다.)
expose_imports()
일반적으로 연구 내용과 직접 관련된 패키지에만 권장하는 것입니다. 나는 일반적으로 같은 유틸리티에 권장하는 것이 아닙니다 forcats
. 이러한 패키지의 경우 처음 renv
부터 예기치 않은 변경이 발생하지 않도록 방지하는 것이 좋습니다 . 귀하의 경우에는을 업데이트 forcats
하고로 잠그고에 renv
의존하는 대상을 무효화하고 forcats
향후 변경 forcats
이 필요하지 않을 것이라고 믿습니다 .
범위가 지정된 호출은 my.package::transfom_mtc(mtc)
tell drake
to track transform_mtc()
과 같지만에서 호출 된 범위가 지정되지 않은 종속성 함수는 아닙니다 my.package::transfom_mtc(mtc)
. 이것은 내가 더 이상 동의하지 않는 1 피트 1 피트 아웃 아이디어 행동입니다. 다음 번에을drake
받으면 이러한 통화 추적 을 중지 하겠습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다