install.packages不处理文件路径中的空格

时间:2018-08-26 00:12:42

标签: r windows

this site中的示例插图进行了简单的更改就说明了我的问题。

下面的代码将运行。没问题。因为网址中没有空格。

#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")

但是,如果我们更改以下行使其具有空格字符,则它将在install.packages上失败。

# 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 :(得分:3)

首先,我认为file.path("C:", "WHITE SPACE", "miniCRAN")无效,因为C:后没有斜杠。

无论如何,要将install.packages与包含空格的路径一起使用,请使用shortPathName

shortPathName(file.path("C:/", "WHITE SPACE", "miniCRAN"))