从本地未压缩文件夹安装R包

30

我在没有管理员权限和无网络访问的Windows 7电脑上安装一个未压缩的软件包时遇到了困难。我正在使用RGui(而不是RStudio)。

现在,我有一个未压缩的库文件夹放置在一个目录中。不幸的是,当我尝试运行以下命令时:

install.packages("C://path//to//directory", 
    repos = NULL, 
    lib = "C://path//to//newDirectory")
我遇到了错误:
Warning in `install.packages("C://path//to//directory",`   :
   'lib = "C://path//to//newDirectory"' is not writable

这很奇怪,因为我确实有写入权限来存储软件包的地方。

当我遇到这个错误时,RGui也会弹出一个弹窗:

Would you like to use a personal library instead?

如果我点击,就会抛出错误:

Error in `install.packages("C://path//to//directory",`   :
    type == "both" cannot be used with 'repos = NULL'

我也无法安装devtools,有什么想法吗?

7个回答

51

将已解压缩到文件夹中的软件包安装的解决方案如下:

install.packages("C:/path to folder with the package", 
repos = NULL, 
type = "source")

在Linux上,“type =“ source””是默认设置,但在Windows平台上不是。 install.packages()使用的系统信息来确定默认安装参数getOption(“repos”)getOption(“pkgType”) - Paul Rougieux

7

我认为错误信息实际上是错误的。你需要给出包的文件名,而不仅仅是目录。

install.packages("C://path//to//directory//MY_PACKAGE.tar.gz", 
    repos = NULL, 
    lib = "C://path//to//newDirectory")

谢谢回复!问题是我不再有压缩包了,我想知道是否可以在文件夹上操作而不是tar.gz? - Phantom Photon
我非常确定你做不到那个。但是你可以使用以下命令从命令行重新构建你的包:R CMD build MY_PACKAGE。 - thc

6

如果这是一个未压缩的Windows二进制文件(例如来自CRAN),您可以将整个软件包目录复制并粘贴到库文件夹中。您还可以使用file.copy()在R中进行操作。 install.packages()失败(很奇怪),因为您提供给它的不是它所期望的典型软件包源或压缩二进制文件。


5
我可以使用开发者工具来完成这个操作:
devtools::install("path/to/package/folder")

3
如果您有zip文件,可以按如下方式安装:
install.packages("E:\\R-Packages\\plyr_1.8.4.zip", repos = NULL, type="source")

1

如果您安装了一个已从库中移除的软件包(并且想要移动它),则可以在Windows上的RStudio中执行以下操作:

  1. 使用任何常用程序(7zip等)压缩当前包所在的文件夹
  2. 将其移动到您想要安装的R版本可访问的文件夹中
  3. 在RStudio中单击工具->安装软件包,选择“软件包存档文件(zip;tar.gz)”在“从哪里安装”下拉列表中。

我刚刚使用此方法成功移动了过时的软件包,并且可以像预期的那样加载它。


1
  1. 打开 R-studio

  2. 在窗口右侧的“Packages”部分中,单击安装图标

  3. 会弹出一个新窗口

  4. 设置“Install from: Package Archive file”,“Package Archive: Browse the unzipped file and select it”

  5. 单击安装
    这将把包安装到 R 库中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接