18

由于某种原因,我突然无法在 R 中安装软件包(我随后更新到最新版本的 R 并且正在运行 Windows 7)。例如,如果我输入:

install.packages('beeswarm')

将软件包安装到“D:/Rlibs”中(因为“lib”未指定)---请选择一个 CRAN 镜像以在此会话中使用---尝试 URL ' http://www.stats.bris.ac.uk/ R/bin/windows/contrib/3.0/beeswarm_0.1.5.zip ' 内容类型 'text/html' 长度未知 打开的 URL 已下载 1859 字节

read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) 中的错误:无法打开连接另外:警告消息:1:在 unzip(zipname, exdir = dest) :从 zip 文件中提取错误 1 ​​2:在 read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) 中:无法打开压缩文件 'beeswarm/DESCRIPTION',可能的原因'没有这样的文件或目录'

我已经读过,在 Windows 7 中,对某些文件夹的写入权限等可能存在重要限制,因此我竭尽全力在计算机的非默认区域中安装 R 和库文件夹,并允许自己有权某些文件夹,但无济于事。当我输入时,可能也很重要:

.libPaths()

# [1] "D:/Rlibs"                                             
# [2] "C:/Users/L.Halsey/Documents/R/win-library/3.0"        
# [3] "C:/Users/L.Halsey/Documents/Documents/R-3.0.1/library"

我创建了几个文件夹,试图创建一个可以成功安装库的文件夹,并使用开始按钮中的“环境变量”将它们设置为被 R 识别。我不知道如何删除它们中的任何一个 - 不确定这是否与我现在由于某种原因无法安装/更新软件包的整体问题有关。

4

5 回答 5

10

报告的错误是无法打开连接。在 Windows 中,这通常是防火墙问题,位于 Windows R 常见问题解答中。通常的第一次尝试应该是运行 internet2.dll。从控制台会话中,您可以使用:

setInternet2(TRUE)

(您认为这不是由于您的库设置是正确的。该错误没有说明权限。)我认为仅键入.libPaths不应返回该字符向量,因为在我的机器上我需要键入.libPaths()才能看到类似的内容。如果您想减少库的位置数量,您可以使用该.libPaths函数来设置值。这将选择现有路径的第二个和第三个

 .libPaths( .libPaths()[2:3] )

内部调用检索路径向量,外部调用将其设置为缩减向量。

于 2013-05-21T23:24:57.697 回答
5

以管理员身份运行 RStudio 为我修复了它!

于 2018-03-06T08:40:54.647 回答
3

我可能会在 stackoverflow 上复制很多其他答案,但我得到了与 OP 完全相同的错误,即: Warning messages: 1: In unzip(zipname, exdir = dest) : error 1 in extracting from zip file 2: In read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) : cannot open compressed file 'zoo/DESCRIPTION', probable reason 'No such file or directory'

事实证明,虽然我作为用户有权写入某个目录,但 R 没有。为了确保您没有类似的东西,请执行以下操作:

  1. 获得一个 USB 驱动器,我们将其命名为 E
  2. 将包源下载为 .zip 文件并将其存储到 USB 驱动器的某个目录中,我们将其命名为 E:/source
  3. 在 USB 驱动器上为库创建目录,我们将其命名为 E:/libs
  4. 从 R 控制台安装调用 R 命令的软件包install.package,并将所有相关目录设置为指向您的 USB 驱动器:

    (这里我以包 zoo 为例)

    install.packages("E:/source/zoo_1.7-12.zip", 
                     destdir = 'E:/source',  # no "/" after the path
                     lib = 'E:/libs', 
                     repos = NULL)
    
  5. 从安装它的目录加载包: library('zoo', lib.loc = 'E:/libs')


确定后,它在您的 USB 驱动器上以这种方式工作,您可以开始解析目录权限,并通过更改上面代码中的路径来尝试。

更新: 在某些 Windows 环境中,甚至您的 USB 记忆棒也可能受到 R 的读写保护。请确保您使用正在使用的机器检查权限。

于 2015-05-29T15:16:55.280 回答
2

以下对我有用(基于上面的答案)

install.packages("clustvarsel", lib = "C:/Users/dnentchev/My Programs/R-3.2.2/library")
于 2016-06-06T22:01:21.630 回答
-2

我有同样的问题。我关闭了 Windows 防火墙,并以管理员身份运行 RStudio。因此,该错误已修复。

于 2021-04-28T06:53:52.613 回答