Установить пакеты в R без подключения к интернету со всеми зависимостями - PullRequest
0 голосов
/ 22 октября 2018

У меня есть все пакеты в tgz, и я хочу установить sparklyr:

install.packages(pkgs = "sparklyr_0.9.2.tar.gz",
                 lib = getwd(),
                 verbose = T,
                 repos = NULL,
                 dependencies = TRUE)
system (cmd0): /opt/cloudera/extras/R-3.3.1/lib/R/bin/R CMD INSTALL
ERROR: dependencies ‘broom’, ‘r2d3’, ‘purrr’, ‘forge’ are not available for package ‘sparklyr’
* removing ‘/home/afranco/Paquetes/sparklyr’

, но в той же папке у меня есть пакеты 'broom', 'r2d3', 'purrr',«кузница».Поэтому я хочу установить некоторые пакеты, используя этот метод, но у меня нет подключения к Интернету.

1 Ответ

0 голосов
/ 22 октября 2018

Инструкции в посте r-bloggers предоставят вам всю необходимую информацию: Как установить пакеты без интернета

Вот часть о зависимостях:

В Office: загрузите зависимости Знание пакетов, которые нам нужны, - это одно, а знание пакетов, от которых они зависят, - это другое, и знание, от каких пакетов зависят эти зависимости,… ну, не стоит думать - есть функция, которая поставляется сR, чтобы сделать это для нас, называется package_dependencies ().

Вот краткий пример сценария, который использует package_dependencies (), чтобы выяснить зависимости от пакетов, которые мы хотим использовать.

#' Get package dependencies
#'
#' @param packs A string vector of package names
#'
#' @return A string vector with packs plus the names of any dependencies
getDependencies <- function(packs){
      dependencyNames <- unlist(
        tools::package_dependencies(packages = packs, db = available.packages(), 
                                    which = c("Depends", "Imports"),
                                    recursive = TRUE))
      packageNames <- union(packs, dependencyNames)
      packageNames
    }
    # Calculate dependencies
    packages <- getDependencies(c("tidyverse", "mangoTraining"))

МыЗатем можно загрузить правильный тип пакета для среды, в которой мы будем обучаться.Часто наши клиенты работают на Windows, поэтому мы скачиваем тип «win.binary».Мы также собираемся сохранить имена файлов пакетов, чтобы позже их можно было установить по имени файла.

# Download the packages to the working directory.
# Package names and filenames are returned in a matrix.
setwd("D:/my_usb/packages/")
pkgInfo <- download.packages(pkgs = packages, destdir = getwd(), type = "win.binary")
# Save just the package file names (basename() strips off the full paths leaving just the filename)
write.csv(file = "pkgFilenames.csv", basename(pkgInfo[, 2]), row.names = FALSE)

На сайте: установка пакетов Предполагая, что мы загрузили наши пакеты на USB-накопитель или аналогичныйНа сайте и без подключения к Интернету теперь мы можем устанавливать пакеты с диска.

# Set working directory to the location of the package files
setwd("D:/my_usb/packages/")

# Read the package filenames and install
pkgFilenames <- read.csv("pkgFilenames.csv", stringsAsFactors = FALSE)[, 1]
install.packages(pkgFilenames, repos = NULL, type = "win.binary")
...