2016-08-13 3 views
9

requirements.txt과 같은 기능이 파이썬에서 사용되는 패키지 목록을 파일에 저장할 수 있으며 다른 사람이 프로그램을 실행하고 종속성을 설치해야 할 때마다 pip install -r requirements.txt을 수행 할 수 있습니다.R의 requirements.txt와 같은 것이 있습니까?

저는 R 스크립트를 프로덕션에 배포 할 때 많은 도움이된다고 생각합니다. 그러한 기능이 없다면 어떻게 복제합니까?

+1

어떤 "기능"을 정확히 말하고 있습니까? requirements.txt 란 무엇입니까? – MrFlick

+1

당신이 무엇을 요구하고 있는지 말할 수 없습니다. (그리고 나는 아직 hte downvoters가 아닙니다.) 배포는 일반적으로 패키지로 수행됩니다. 패키지 설명 파일에있는 것이거나'.Rprofile' 파일에있는 것일 수 있습니다. –

+2

'packrat '을 사용해보세요 – hrbrmstr

답변

3

주석에 따라 패키지를 만들고 DESCRIPTION 파일에 요구 사항을 포함 할 수 있습니다. .R 스크립트를 "프로덕션"에 넣는 것에 대해 이야기하는 경우, 처음에 함수를 넣어 필요한 패키지가 설치되어 있는지 확인할 수 있습니다. 여기 내 자신의 패키지에있는 행을 따라 뭔가가 있으며, 어떤 스크립트가 시작될 때 pkgLoad(<list of packages>)으로 전화를 걸어 패키지가 설치되고로드되었는지 확인할 수 있습니다. 나는 나의 마음에 드는 패키지의 목록을 포함하는 등 그 pkgLoad() 설치하고 부하 모든 평소 용의자의 전화 :

pkgLoad <- function(packages = "favourites") { 

    if(length(packages) == 1L && packages == "favourites") { 
     packages <- c("data.table", "chron", "plyr", "dplyr", "shiny", 
         "shinyjs", "parallel", "devtools", "doMC", "utils", 
         "stats", "microbenchmark", "ggplot2", "readxl", 
         "feather", "googlesheets", "readr", "DT", "knitr", 
         "rmarkdown", "Rcpp" 
     ) 
    } 

    packagecheck <- match(packages, utils::installed.packages()[,1]) 

    packagestoinstall <- packages[ is.na(packagecheck) ] 

    if(length(packagestoinstall) > 0L) { 
     utils::install.packages(packagestoinstall, 
          repos = "http://cran.csiro.au" 
     ) 
    } else { 
     print("All requested packages already installed") 
    } 

    for(package in packages) { 
     suppressPackageStartupMessages(
      library(package, character.only = TRUE, quietly = TRUE) 
     ) 
    } 

} 

참고 나는 함수에 나의 마음에 드는 크랑 거울을 내장, 그래서 당신이 그것을 편집 확인했습니다 너 자신의 필요.

+1

전형적인 미국식 방식으로 오스트레일리아의 도메인 확장을 혼란스럽게했고 가장 가까운 미러에서 다운로드하지 않는 이유가 궁금합니다. 특히 CRAN의 중앙 미러이기 때문에 더욱 그렇습니다. – shayaa

관련 문제