2017-02-12 2 views
0

종속성으로 rjags을 사용하는 R 패키지를 작성 중입니다. 내 보낸 함수는 rjags::jags.model("myModel.JAGS") 내부적으로 호출해야합니다. 나는 그것이 stricto - sensu "스크립트"없는 경우에도 exec 폴더 내의 myModel.JAGS 파일을 번들로한다처럼R 패키지 내의 .JAGS 모델 파일 번들

는 느낌. 어떻게 접근해야합니까?

나는

#'@export 
myFunction <- function() { 

    # ... 

    path <- path.package('myPackage') 
    file <- file.path(path, 'exec', 'myModel.JAGS') 
    rjags::jags.model(file, ...) 

    # ... 

} 

조금 hackish, 그것은

찾을?

답변

3

패키지 이름에 system.file을 사용하고 inst 폴더에 파일을 넣어야합니다.

패키지가 설치되면 inst의 내용이 패키지 폴더에 복사되므로 mypackage/inst/jags/mymodel.jags이있는 경우 system.file("jags","mymodel.jags",package="mypackage")을 사용하여 jags 파일의 경로를 가져올 수 있습니다. 당신이 devtools를 사용하여 개발 모드 대신의 설치 수행에 패키지를로드하는 경우, 다음 devtools이이 load_all를 통해로드 제거 된 패키지에 대한 작동 사용 inst/whatever/ 때문에 아무것도 볼 system.file에 대한 몇 가지 래퍼를로드 할 것을

참고.

+0

좋아요. 참으로 기쁜 듯이 보이기 : –

+0

R 패키지의'stan' 사용에 대한 모범 사례를보고있는 동안, stan 소스를'exec'에 두는 것이 좋습니다. 그렇지만 스탠 파일은 C로 변환되어 일회용으로 컴파일되므로 아마 설치된 패키지가 작동합니다. – Spacedman