将软件包安装到R中

问题描述 投票:14回答:4

出于某种原因,我突然无法在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:解压缩(zipname,exdir = dest) :从zip文件2中提取错误1:在read.dcf(file.path(pkgname,“DESCRIPTION”),c(“包”,“类型”)):无法打开压缩文件'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使用“开始”按钮中的“环境变量”进行识别的文件夹。我不知道如何删除它们中的任何一个 - 不确定这是否与我现在因某些原因无法安装/更新软件包的整体问题相关。

r install package cran
4个回答
10
投票

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

setInternet2(TRUE)

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

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

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


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-drive中,我们将其命名为E:/ source
  3. 在usb驱动器上为库创建目录,我们将其命名为E:/ libs
  4. 从R控制台安装调用R命令install.package的软件包,并将所有相关目录设置为指向您的USB驱动器: (这里我以包动物园为例) 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-stick也可能受到R的读写保护。确保使用您正在使用的计算机检查权限。


3
投票

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


1
投票

以下为我工作(基于上面的答案)

install.packages("clustvarsel", lib = "C:/Users/dnentchev/My Programs/R-3.2.2/library")
© www.soinside.com 2019 - 2024. All rights reserved.