在 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 上安装包的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ubuntu 上安装 R 包“RNetCDF”和“ncdf”?