如何从下载zip文件安装包

ang*_*ngs 15 r

我已经将此软件包下载为zip文件.

是否可以使用此zip或unzip版本从R控制台安装到特定路径?

install.packages("C:/Users/Desktop/rvest-master.zip', lib='C:/R/R-3.2.1',repos = NULL)
Run Code Online (Sandbox Code Playgroud)

我键入上一个命令但不起作用

> setwd("C:/Users/Desktop/")
> unzip("rvest-master.zip")
> file.rename("rvest-master", "rvest")
[1] TRUE
> shell("R CMD build rvest")
Warning messages:
1: running command ' /c R CMD build rvest' had status 127 
2: In shell("R CMD build rvest") :
  'R CMD build rvest' execution failed with error code 127
> install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL)
Installing package into ‘C:/Users/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Warning: invalid package 'rvest_0.2.0.9000.tar.gz'
Error: ERROR: no packages specified
Warning messages:
1: running command '"C:/R/R-3.2.1/bin/x64/R" CMD INSTALL -l "C:\Users\Documents\R\win-library\3.2" "rvest_0.2.0.9000.tar.gz"' had status 1 
2: In install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL) :
  installation of package ‘rvest_0.2.0.9000.tar.gz’ had non-zero exit status
Run Code Online (Sandbox Code Playgroud)

在上一行中是答案的结果

Tho*_*mas 28

您已经下载了包的源代码的zip.这不是包源的标准包装,也不是标准的Windows二进制文件(即,作为.zip分发的构建包,来自CRAN).

最简单的方法是使用devtools直接从Github安装此软件包:

library("devtools")
install_github("hadley/rvest")
Run Code Online (Sandbox Code Playgroud)

如果您决定在本地安装它,则需要解压缩包目录,使用命令行构建它R CMD build rvest,然后R CMD INSTALL使用您已有的命令(或在内置的"tarball"上执行)使用或从R中安装.以下是你如何在R中完成所有这些工作:

setwd("C:/Users/Desktop/")
unzip("rvest-master.zip")
file.rename("rvest-master", "rvest")
shell("R CMD build rvest")
Run Code Online (Sandbox Code Playgroud)

这将在当前目录中生成包的tarball版本.然后你可以安装它

install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL)
Run Code Online (Sandbox Code Playgroud)

由于版本号已合并到tarball名称中,因此可能并不总是很明显可能会调用新文件.你可以list.files()用来抓住新的tarball.

install.packages(list.files(pattern="rvest*.tar.gz"), repos = NULL)
Run Code Online (Sandbox Code Playgroud)

如果该shell()行给出了这样的错误

"R"不被识别为内部或外部命令

您需要确保R位于shell路径中.您可以添加类似的东西

Sys.setenv(PATH=paste(R.home("bin"), Sys.getenv("PATH"), sep=";"))
Run Code Online (Sandbox Code Playgroud)


Rob*_*les 16

试试install.packages('C:/Users/Desktop/rvest-master.zip', repos = NULL, type = "win.binary").(未测试)

  • 效果很好。您也可以直接从 cran 复制链接地址。这是一个例子。```install.packages('https://cran.r-project.org/bin/windows/contrib/3.3/proxy_0.4-20.zip', repos = NULL, type = "win.binary")` `` (2认同)
  • 我非常怀疑这是否有效。OP下载了一个githb repo zip,这是针对win的二进制包,只有CRAN主机有这种文件。 (2认同)

dra*_*doc 9

很难相信这没有一个清晰、简单和准确的答案。

  1. 您通过单击“下载为zip”从github下载的zip是该repo的一个包,它不是像CRAN托管的标准R源包格式。因此,适用于 CRAN 源 tar.gz 的方法不适用于此类 zip。
  2. 最简单的方法是使用devtools::install_local. 如果 devtools 给您带来了太多依赖项,您可以使用remotes::install_local真正的功能,并且依赖项要少得多。