【问题标题】:How to install a package not located on CRAN repository?如何安装不在 CRAN 存储库中的软件包?
【发布时间】:2013-06-18 08:21:46
【问题描述】:

我正在尝试使用 Google 趋势数据,但遇到了一些不在 CRAN 上的软件包(GTrendsRGoogleTrends)。

我喜欢我从 RGoogleTrends 包at this blog 中看到的内容,并想尝试一下。 RGoogleTrends 包位于:http://www.omegahat.org/RGoogleTrends/

首先,我使用的是 Windows 操作系统,并且我的 R 控制台中有一个 uption:

>Packages>Install package(s) from local zip drives ...

这会导致以下结果:

> utils:::menuInstallLocal()
Error in read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) : 
  cannot open the connection
In addition: 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 'RGoogleTrends_0.2-1.tar.gz/DESCRIPTION', probable reason 'No such file or directory'

我猜这与文件是 .gz 而不是 .zip 文件这一事实有关。

所以,我将 .gz 文件解压缩到 R 之外,然后将其压缩到 .zip 文件中(必须有更好的方法)。现在我可以安装.zip 文件,但是当我尝试使用library 加载它时,出现以下错误:

> library(RGoogleTrends)
Error in library(RGoogleTrends) : 
  ‘RGoogleTrends’ is not a valid installed package

我在这里做错了什么?

【问题讨论】:

  • 您正在寻找的术语是“如何在 Windows 中构建包”。网络搜索的得分超过了足够的点击量。简而言之,你应该安装 Rtools 并运行R CMD INSTALL --build yourfile.tar.gz
  • @RomanLuštrik - 如果我能够在 R 之外打开 .gzfiles,那么我认为应该有一种方法可以在不需要安装另一个程序的情况下加载包 - 对吗? p.s.我已经安装了 cygwin,但从未通过它运行过 R。
  • 您是否按照omegahat.org 的建议尝试了install.packages(packageName, repos = "http://www.omegahat.org/R", type = "source")
  • @GSee - 这对我不起作用。 “安装包中的错误(RGoogleTrends,repos = “omegahat.org/R”,:找不到对象“RGoogleTrends”“

标签: r repository package installation cran


【解决方案1】:

为此,您将需要 R 版本 3,例如: http://cran.cnr.berkeley.edu/bin/windows/base/R-3.0.1-win.exe

然后打开R并输入:

install.packages("devtools")
require(devtools)
install_url("http://www.omegahat.org/RGoogleTrends/RGoogleTrends_0.2-1.tar.gz")
require(RGoogleTrends)
ls("package:RGoogleTrends")

在此过程中您可能会收到很少的警告。别理他们。然后你应该可以使用这个包了。

【讨论】:

  • 感谢 Dimitrii - 这很好用。安装包很容易——让它正常工作似乎不是下一个挑战,干杯。
【解决方案2】:

我认为 linux 的包构建方式与 windows 不同,因此 .gz 版本无法转换为 .zip

此链接表明您应该只能使用解压缩的版本... http://decisionstats.com/2013/04/26/using-a-linux-only-package-in-windows-rstats/

其中的注释建议使用 devtools 或 Rtools,两者都允许从 gz 文件直接安装

直接解压使用

  1. 从 tar.gz 解压到 .tar
  2. 从 .tar 中提取
  3. 将工作目录设置为 R 子文件夹,例如Setwd( "C:\\Users\\x\\Documents\\RGoogleTrends_0.2-1.tar\\RGoogleTrends_0.2-1\\RGoogleTrends\\R")
  4. 加载所有函数for (i in list.files()){source(i)}

使用开发工具

  1. 安装开发工具
  2. library("devtools")
  3. Setwd 到包含 .tar.gz 文件的文件夹
  4. install("RGoogleTrends_0.2-1.tar.gz")

使用 Rtools

  1. http://cran.r-project.org/bin/windows/Rtools/下载正确版本
  2. 从 .exe 安装
  3. 检查您是否需要http://cran.r-project.org/bin/windows/Rtools/Rtools.txt中的任何内容
  4. 从命令行运行 R(cmd 进入开始搜索) - 参见
  5. Setwd 到包含 .tar.gz 文件的文件夹
  6. R CMD 安装 *.tar.gz

我首选的方法是开发工具

【讨论】:

  • 我为你合并了一些方法
  • 只是为了添加一种使用devtools 的方法(因为这里的选项对我不起作用),我解压缩了(两次)tar.gz 并将install 与解压缩的文件夹一起使用。 (Windows 7 上的 R 3.3.0,带有 devtools_1.12.0 和 Rtools 3.4.0.1962)
【解决方案3】:

我遇到了各种各样的错误,例如:

not supported in current version
cannot find DEPENDENCIES
cannot unzip

如果您正在运行 windows 并为所有用户安装并以普通用户身份运行(出于各种原因,您应该这样做)安装软件包很有趣。

我最终做的是

close R
open R as admin
load base package

我已经下载了这些包,所以我可以离线安装它们在f:\software\rcontrib

然后运行:

files=list.files(path="f:/software/rcontrib",pattern="*.zip",include.dirs=TRUE)
for (i in seq(along=files)){install.packages(files[i],repos=NULL)}

这将从本地目录/公共文件共享/非 Internet 位置批量加载包。

然后你可以退出 R。在机器上以任何用户身份运行你应该能够使用这些包。

这有望为人们节省我浪费在尝试批量加载和克服 R 中实际上是 Windows 安全性的错误的几个小时。

【讨论】:

    猜你喜欢
    • 2013-09-10
    • 2014-08-03
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    相关资源
    最近更新 更多