drake :: expose_imports ()의 올바른 사용법-호출 할 위치-재귀 적입니까?

매튜 스트라시 오토

요약

가져온 패키지의 변경 사항을 재현 가능하게 추적하기 위해의 drake사용을 제안하는 힌트 / 제안 / 경고를 문서 에서 발견 expose_imports했지만 문서는 이의 올바른 사용법에 대해 비교적 간단합니다.

이제를 expose_imports사용하여 수정하도록 설계된 동작의 예를 목격했으며 사용 drake을 시작하고 싶습니다.

제 경우에는 추적되지 않은 종속성이 였는데 forcats, 버전 0.4.0에서는 fct_collapse(내 함수 중 하나 에서 사용됨)에 버그 가있어서 출력 요소에 잘못된 그룹을 할당합니다.

0.4.0.9000이 버그를 해결 0.4.0.9000하고 얼마 전에로 업데이트 했지만 이전 버전에 대해 실행해야하는 대상이 무효화되지 않았 음을 확인했습니다.

질문

이것이 expose_imports완화 될 수 있는 문제라고 생각하지만 실제로 사용하는 방법 / 어디서 이해하지 못합니다.

my.packagedrake계획에서 다음과 같이 범위가 지정된 호출을 하면 :

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 draketo track transform_mtc()과 같지만에서 호출 된 범위가 지정되지 않은 종속성 함수는 아닙니다 my.package::transfom_mtc(mtc). 이것은 내가 더 이상 동의하지 않는 1 피트 1 피트 아웃 아이디어 행동입니다. 다음 번에을drake 받으면 이러한 통화 추적 중지 하겠습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

한 재귀 쿼리의 출력을 다른 재귀 쿼리에 사용할 수 있습니까?

분류에서Dev

Scheme의 재귀 호출에서 값을 올바르게 반환하는 방법은 무엇입니까?

분류에서Dev

lxpanel의 온도 모니터에 사용할 올바른 센서 위치?

분류에서Dev

의사 재귀 호출 = stackoverflow

분류에서Dev

React에서 렌더링하기 전에 함수를 호출 할 올바른 위치는 무엇입니까?

분류에서Dev

함수 호출을 올바르게 사용하려면 어떻게해야합니까? 2 개의 배치 파이썬 스크립트를 할 것입니다. 하나는 입력에 다른 하나는 출력

분류에서Dev

꼬리 호출 최적화가 재귀 호출 이외의 호출에 적용됩니까?

분류에서Dev

메서드가 재귀 적으로 호출되는지 확인하는 올바른 방법

분류에서Dev

C의 다른 문자열 내에서 문자열 위치를 재귀 적으로 찾는 방법은 무엇입니까?

분류에서Dev

/ tmp에 대한 올바른 권한은 무엇입니까? 의도 치 않게 모든 것을 재귀 적으로 공개했습니다.

분류에서Dev

WHILE 루프를 사용할 때 함수를 재귀 적으로 호출하고 제대로 중단하는 방법은 무엇입니까?

분류에서Dev

사용자 입력을 위해 함수를 재귀 적으로 호출

분류에서Dev

CTE가 두 테이블의 재귀를 처리하는 올바른 방법입니까?

분류에서Dev

재귀 호출 외에 할당되는 함수 이름을 지정하는 다른 용도가 있습니까?

분류에서Dev

SCHEME의 재귀 메서드에서 한 번만 호출 적용

분류에서Dev

for 루프 내에서 재귀 함수를 올바르게 호출하는 방법은 무엇입니까?

분류에서Dev

부트 로더 내에서 사용할 올바른 호출 규칙은 무엇입니까?

분류에서Dev

재귀 호출의 '없음'출력을 이해할 수 없습니다.

분류에서Dev

sudo를 사용할 때 docker 함수가 재귀 적으로 호출되지 않습니까?

분류에서Dev

재귀 적 make :`$ (MAKEFLAGS)`를 삽입하는 올바른 방법

분류에서Dev

스핀 상자 (또는 다른 Tkinter 위젯)의 값을 계산에 올바르게 사용할 수있는 방법은 무엇입니까?

분류에서Dev

자바 : 재귀 호출에서 원래 매개 변수를 사용하여 내 메서드를 재귀 적으로 호출하는 방법

분류에서Dev

Puma를 사용할 때 BigDecimal 제한을 초기화하는 올바른 위치는 어디입니까?

분류에서Dev

print ()의 다른 위치에서 동일한 사용자 입력을 호출하는 방법

분류에서Dev

Angular 9의 서비스에서 HTTP 포스트를 재귀 적으로 호출 할 수 있습니까?

분류에서Dev

return 문은 재귀 함수 호출에서 다른 역할을합니까?

분류에서Dev

bash 함수가 지역 변수를 사용하지 않고 자신을 재귀 적으로 호출 할 수있는 이유는 무엇입니까?

분류에서Dev

Laravel Routes-한 양식에서 다른 양식의 ajax 경로 호출을 재사용 할 수 있습니까?

분류에서Dev

NAN 제거를위한 적용 기능의 올바른 사용법

Related 관련 기사

  1. 1

    한 재귀 쿼리의 출력을 다른 재귀 쿼리에 사용할 수 있습니까?

  2. 2

    Scheme의 재귀 호출에서 값을 올바르게 반환하는 방법은 무엇입니까?

  3. 3

    lxpanel의 온도 모니터에 사용할 올바른 센서 위치?

  4. 4

    의사 재귀 호출 = stackoverflow

  5. 5

    React에서 렌더링하기 전에 함수를 호출 할 올바른 위치는 무엇입니까?

  6. 6

    함수 호출을 올바르게 사용하려면 어떻게해야합니까? 2 개의 배치 파이썬 스크립트를 할 것입니다. 하나는 입력에 다른 하나는 출력

  7. 7

    꼬리 호출 최적화가 재귀 호출 이외의 호출에 적용됩니까?

  8. 8

    메서드가 재귀 적으로 호출되는지 확인하는 올바른 방법

  9. 9

    C의 다른 문자열 내에서 문자열 위치를 재귀 적으로 찾는 방법은 무엇입니까?

  10. 10

    / tmp에 대한 올바른 권한은 무엇입니까? 의도 치 않게 모든 것을 재귀 적으로 공개했습니다.

  11. 11

    WHILE 루프를 사용할 때 함수를 재귀 적으로 호출하고 제대로 중단하는 방법은 무엇입니까?

  12. 12

    사용자 입력을 위해 함수를 재귀 적으로 호출

  13. 13

    CTE가 두 테이블의 재귀를 처리하는 올바른 방법입니까?

  14. 14

    재귀 호출 외에 할당되는 함수 이름을 지정하는 다른 용도가 있습니까?

  15. 15

    SCHEME의 재귀 메서드에서 한 번만 호출 적용

  16. 16

    for 루프 내에서 재귀 함수를 올바르게 호출하는 방법은 무엇입니까?

  17. 17

    부트 로더 내에서 사용할 올바른 호출 규칙은 무엇입니까?

  18. 18

    재귀 호출의 '없음'출력을 이해할 수 없습니다.

  19. 19

    sudo를 사용할 때 docker 함수가 재귀 적으로 호출되지 않습니까?

  20. 20

    재귀 적 make :`$ (MAKEFLAGS)`를 삽입하는 올바른 방법

  21. 21

    스핀 상자 (또는 다른 Tkinter 위젯)의 값을 계산에 올바르게 사용할 수있는 방법은 무엇입니까?

  22. 22

    자바 : 재귀 호출에서 원래 매개 변수를 사용하여 내 메서드를 재귀 적으로 호출하는 방법

  23. 23

    Puma를 사용할 때 BigDecimal 제한을 초기화하는 올바른 위치는 어디입니까?

  24. 24

    print ()의 다른 위치에서 동일한 사용자 입력을 호출하는 방법

  25. 25

    Angular 9의 서비스에서 HTTP 포스트를 재귀 적으로 호출 할 수 있습니까?

  26. 26

    return 문은 재귀 함수 호출에서 다른 역할을합니까?

  27. 27

    bash 함수가 지역 변수를 사용하지 않고 자신을 재귀 적으로 호출 할 수있는 이유는 무엇입니까?

  28. 28

    Laravel Routes-한 양식에서 다른 양식의 ajax 경로 호출을 재사용 할 수 있습니까?

  29. 29

    NAN 제거를위한 적용 기능의 올바른 사용법

뜨겁다태그

보관