LoginSignup
1

More than 3 years have passed since last update.

posted at

updated at

Rで使用する依存パッケージ一覧

なぜ必要になったか

LambdaでRを動かそうかと思ったのだが如何せん全ての依存パッケージをまるっとzipにする必要があった。
Lambdaへは以下コードから使用しているパッケージの依存パッケージ名を全て取得し、あと、base,compiler,datasetsを入れればOK

コード

################################################################################
# Lambdaへアップする必要がある依存パッケージ一覧を出力
# 
################################################################################
library(tools)
REQUIRE_LIBS <- list(
  "R.utils",
  "tuneR",
  "jsonlite"
  , "xml2"
  , "aws.s3"
)
ALL_PKG <- available.packages()

funcDependencies <- function(libNm, all_pkg) {
  depenVec <- package_dependencies(packages = libNm, all_pkg, which = "Imports", reverse = F)[[1]]
  if (length(depenVec) > 0) {
    depenVecTmp <- depenVec
    for (depen in depenVecTmp) {
      depenVec <- c(depenVec, funcDependencies(depen, all_pkg))
    }
  }

  return (depenVec)
}

libs =c()
for(libNm in REQUIRE_LIBS) {
  libs <- c(libs, libNm, funcDependencies(libNm, ALL_PKG))
}
createDownloadUrl <- function(libNm) {
  return(paste0("https://cran.r-project.org/src/contrib/", libNm, "_", packageVersion(libNm), ".tar.gz"))
}
libs <- sort(unique(libs))
libs <- lapply(libs, createDownloadUrl)
cat(paste(c(paste0("---- 依存パッケージ:", length(libs), "件"), libs), collapse = "\n"))

refs.

Rのパッケージの依存関係を色々調べたいときのメモ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1