LoginSignup
2
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-02-07

なぜ必要になったか

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のパッケージの依存関係を色々調べたいときのメモ

2
1
0

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
  3. You can use dark theme
What you can do with signing up
2
1