【问题标题】:install.packages does not deal with whitespace in file pathinstall.packages 不处理文件路径中的空格
【发布时间】:2018-08-26 00:12:41
【问题描述】:

this site 的示例小插图中的一个简单更改说明了我的问题。

下面的代码将运行。没问题。因为 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")

但是如果我们改变下面的行让它有一个空格字符,那么它会在 install.packages 上失败。

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

在我看来,第 p 个字符串被拆分了。除了在我的文件系统中更改文件夹名称之外,有什么办法可以解决这个问题?我试图用“%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

【问题讨论】:

  • 我会试试shortPathName(file.path("C:/", "WHITE SPACE", "miniCRAN"))
  • @StéphaneLaurent 你能把这个写下来作为答案吗?

标签: r windows


【解决方案1】:

首先,我认为file.path("C:", "WHITE SPACE", "miniCRAN") 不是有效路径,因为C: 后面没有斜线。

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

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

【讨论】:

  • 我们不需要“C:”后面的“/”,因为它是file.path函数添加的路径分隔符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 2011-08-25
  • 2020-06-18
相关资源
最近更新 更多