对于R,有什么类似requirements.txt的吗?

han*_*s-t 27 r pip requirements.txt install.packages

是否有类似requirements.txtPython 的功能,您可以在其中存储用于文件的包列表,并且每当其他人想要运行您的程序并且需要安装依赖项时,他们就可以这样做pip install -r requirements.txt.

我认为,在将R脚本部署到生产环境中时,这会有很大帮助.如果没有这样的功能,我该如何复制它?

ros*_*ova 5

根据评论,您可能希望查看构建包,并在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 )
        )
    }

}
Run Code Online (Sandbox Code Playgroud)

注意我已经将我最喜欢的CRAN镜像构建到该函数中,因此请确保根据自己的需要进行编辑.

  • 以典型的美国方式,我将澳大利亚的域名后缀混淆为奥地利,并想知道您为什么不从最近的镜像下载,特别是因为它是 CRAN 的中央镜像。 (2认同)
  • `install.packages` 可能应该替换为 `devtools::install_version`,因为通过 requirements.txt 不仅可以安装必要的包,还可以安装它们的特定版本。 (2认同)