在 R 上安装包

Posted

技术标签:

【中文标题】在 R 上安装包【英文标题】:Installing packages onto R 【发布时间】:2013-05-16 20:19:20 【问题描述】:

由于某种原因,我突然无法在 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", “类型”)):无法打开连接另外:警告 消息:1:在解压缩中(zipname,exdir = dest):提取时出现错误 1 来自 zip 文件 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 识别。我不知道如何删除它们中的任何一个 - 不确定这是否与我现在由于某种原因无法安装/更新软件包的整体问题有关。

【问题讨论】:

【参考方案1】:

报告的错误是无法打开连接。在 Windows 中是 often a firewall problem and is in the Windows R FAQ。通常的第一次尝试应该是运行 internet2.dll。在控制台会话中,您可以使用:

setInternet2(TRUE)

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

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

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

【讨论】:

【参考方案2】:

我可能会在 *** 上复制很多其他答案,但我得到了与 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 没有。为了确保您没有类似的东西,请执行以下操作:

    得到一个 USB 驱动器,我们将它命名为 E 将包源下载为 .zip 文件并将其存储到 USB 驱动器的某个目录中,我们将其命名为 E:/source 在 USB 驱动器上为库创建目录,我们将其命名为 E:/libs

    从 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)
    

    从安装包的目录加载包: library('zoo', lib.loc = 'E:/libs')


确定后,它在你的U盘上是这样工作的,你可以开始解析目录权限,并通过更改上面代码中的路径来尝试。

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

【讨论】:

【参考方案3】:

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

install.packages("clustvarsel", lib = "C:/Users/dnentchev/My Programs/R-3.2.2/library")

【讨论】:

【参考方案4】:

以管理员身份运行 RStudio 已为我解决了这个问题!

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于在 R 上安装包的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS 实例上安装 R 包预测时出错

如何在 Ubuntu 上安装 R 包“RNetCDF”和“ncdf”?

安装没有在R包仓库CRAN上托管的R包

在集群上安装 R 包时出现奇怪的 C 编译器错误

在 GCE 托管的 google colab Jupyter notebook 上安装 R 包

为可以安装在不同机器上的 Linux 创建 R 二进制包?