对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
答案 0 :(得分:3)
首先,我认为file.path("C:", "WHITE SPACE", "miniCRAN")
无效,因为C:
后没有斜杠。
无论如何,要将install.packages
与包含空格的路径一起使用,请使用shortPathName
:
shortPathName(file.path("C:/", "WHITE SPACE", "miniCRAN"))