install.packages не работает с пробелами в пути к файлу - PullRequest
0 голосов
/ 26 августа 2018

Простое изменение в примере виньетки с на этом сайте иллюстрирует мою проблему.

Код ниже будет работать. Нет проблем. Потому что в URL нет пробелов.

#miniCRAN example
library("miniCRAN")

# use Revolution Analytics CRAN mirror
revolution <- c(CRAN = "http://cran.microsoft.com")

# Specify list of packages to download
pkgs <- c("foreach")
pkgList <- pkgDep(pkgs, repos = revolution, type = "source", suggests = FALSE)
pkgList


# Create temporary folder for miniCRAN
dir.create(pth <- file.path("C:", "RTEMP", "miniCRAN"), recursive=TRUE)


# Make repo for source and win.binary
makeRepo(pkgList, path = pth, repos = revolution, type = c("source", "win.binary"))


# List all files in miniCRAN
list.files(pth, recursive = TRUE, full.names = FALSE)


#install packages from your local repository
install.packages(pkgs, repos = paste0("file:///", pth), type = "source")

Но если мы изменим следующую строку, чтобы она имела символ пробела, то это приведет к сбою в установочных пакетах.

# Create temporary folder for miniCRAN
dir.create(pth <- file.path("C:", "WHITE SPACE", "miniCRAN"), recursive=TRUE)

Мне кажется, что pth строка разделена. Есть ли способ обойти это, кроме изменения имен папок в моей файловой системе? Я пытался заменить "" на "% 20", но это не помогло. Я в системе Windows, кстати.

Warning: invalid package 'C:/WHITE'
Warning: invalid package 'SPACE/miniCRAN/src/contrib/foreach_1.4.4.tar.gz'
Error: ERROR: no packages specified

1 Ответ

0 голосов
/ 27 августа 2018

Во-первых, я думаю, file.path("C:", "WHITE SPACE", "miniCRAN") не является допустимым путем, потому что после C: нет косой черты.

В любом случае, чтобы использовать install.packages с путем, содержащим пробелы, используйте shortPathName:

shortPathName(file.path("C:/", "WHITE SPACE", "miniCRAN"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...