2016-08-13 25 views
9

Python'da Python'da requirements.txt gibi bir işlev var mı, bir dosyada kullanılan paketlerin bir listesini saklayabilirsiniz ve diğer insanlar programlarınızı çalıştırmak istediğinde ve bağımlılıkları yüklemeleri gerektiğinde, yalnızca pip install -r requirements.txt yapabilirler.R için require.txt gibi bir şey var mı?

Bu, R komut dosyasını üretime yerleştirirken çok yardımcı oluyor. Böyle bir işlev yoksa, nasıl çoğaltabilirim?

+1

Tam olarak hangi "işlevsellik" ile ilgili konuşuyorsunuz? Require.txt ne yapmalı? – MrFlick

+1

Ne sorduğunuzu söyleyemiyorum (ve henüz bir hte downvoters değilim). Dağıtım genellikle bir paketle yapılır. Bir paket DESCRIPTION dosyasında ne olabilir ya da '.Rprofile' dosyasında ne olabilir. –

+2

'packrat' kullanarak deneyin – hrbrmstr

cevap

3

Açıklamalara göre, bir paket oluşturmaya ve DESCRIPTION dosyasındaki gereksinimleri de dahil etmek isteyebilirsiniz. Bir ".R" komutunu "üretime" eklemekten bahsediyorsanız, gereken paketlerin kurulu olduğundan emin olmak için başlangıçta bir işlev koyabilirsiniz. İşte kendi paketimde bulunan satırlarda bir şey var ve paketlerin yüklü ve yüklü olduğundan emin olmak için herhangi bir komut dosyasının başında pkgLoad(<list of packages>) numaralı telefonu arayabilirim. Benim favori paketlerin bir listesini içerir, öyle ki pkgLoad() yüklemeler ve yükler tüm olağan şüpheliler bir çağrı:

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) 
     ) 
    } 

} 

Not ben işlevi içine benim favori CRAN ayna inşa, bu nedenle söz konusu düzenleme emin olun ettik kendi ihtiyaçlarınız.

+1

Tipik Amerikan tarzında, Avustralya'nın alan adı uzantısını Avusturya'ya karıştırdım ve neden en yakın aynadan indirilmediğini merak ettim, özellikle de CRAN'ın merkezi aynası olduğu için. – shayaa

İlgili konular