如何从源代码安装R软件包?

371 install r package r-faq

一位朋友发给我这个伟大的教程,用R网络分析NYtimes.我真的很想尝试一下.但是,第一步是从源代码安装名为RJSONIO的软件包.

我知道R相当不错,但我不知道如何从源代码安装包.

我正在运行Mac OSX.

Sha*_*ane 452

如果您在本地拥有该文件,则使用install.packages()并设置repos=NULL:

install.packages(path_to_file, repos = NULL, type="source")
Run Code Online (Sandbox Code Playgroud)

哪里path_to_file代表完整路径和文件名:

  • 在Windows上,它看起来像这样:"C:\\RJSONIO_0.2-3.tar.gz".
  • 在UNIX上它将如下所示:"/home/blah/RJSONIO_0.2-3.tar.gz".

  • 这似乎不适用于zip存档. (9认同)
  • 正如@Cerin指出的那样,你必须要处理扩展.我有一个错误"(因为'lib'未指定)"来自R与.zip档案.将扩展名更改为.tar后,一切正常. (3认同)
  • 如果`file_name_and_path`是R包的本地源存储库,这也适用. (2认同)
  • install.packages("/ tmp/shiny_0.13.1.tar.gz",repos = NULL,type ="source")我收到此错误:-ksh:语法错误:`('意外 (2认同)

rcs*_*rcs 88

下载源包,打开Terminal.app,导航到当前拥有该文件的目录,然后执行:

R CMD INSTALL RJSONIO_0.2-3.tar.gz
Run Code Online (Sandbox Code Playgroud)

请注意,只有在以下情况之一时才会成功:a)程序包不需要编译或b)存在编译所需的系统工具.请参阅:https://cran.r-project.org/bin/macosx/tools/

  • 找到解决方案,需要使用--binary选项. (5认同)
  • 我试过这个并得到一个错误:Madjoro-MacBook-Pro:~Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz警告:无效的包'RJSONIO_0.2-3.tar.gz'错误:错误:没有包规定 (3认同)
  • 您有多少次因为输入 install 而不是 INSTALL 而来到这里? (2认同)

Edu*_*oni 49

您可以直接从存储库安装(注意type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
Run Code Online (Sandbox Code Playgroud)

  • 您是否安装了开发人员工具?它们来自Mac OS X安装DVD.由于这个包有C代码,你需要一个编译器来从源代码安装它. (6认同)
  • 如果您在Windows上执行此操作,则可以从http://www.murdoch-sutherland.com/Rtools/获取开发人员工具...确保在安装时选中要更新路径的框(可能是有点难以阅读....只是检查了未经检查的框出现了) (4认同)
  • 我试过这个并得到一个错误:*安装*source*package'RJSONIO'...**libs**arch - i386 sh:make:command not found错误:包'RJSONIO'的编译失败RMate在第3行停止删除'/Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO'下载的软件包位于'/ private/var/folders/Ey/EyzhYjoKESmsmsZ6K87PeU +++ TI/-Tmp-/Rtmpe3C96p/downloaded_pa​​ckages'在'.Library'中更新软件包的HTML索引警告消息:在install.packages("RJSONIO",repos ="http://www.omegahat.org/R",:软件包'RJSONIO'的安装具有非零退出状态 (3认同)

小智 23

从源代码安装旧版软件包的补充方便(但微不足道)的提示.

首先,如果你调用"install.packages",它总是从repo安装最新的软件包.如果要安装旧版本的软件包,比如说兼容性,可以调用install.packages("url_to_source",repo = NULL,type ="source").例如:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")
Run Code Online (Sandbox Code Playgroud)

无需手动将软件包下载到本地磁盘并切换到命令行或从本地磁盘安装,我发现它非常方便并简化了调用(一步).

另外:您可以将这个技巧与devtools库的dev_mode一起使用,以便管理不同版本的软件包:

参考:doc devtools


har*_*dsv 7

此外,您可以使用--binary选项构建二进制包.

R CMD build --binary RJSONIO_0.2-3.tar.gz
Run Code Online (Sandbox Code Playgroud)

  • `R CMD build --binary`已弃用; 使用`R CMD INSTALL --build`代替 (20认同)

Dod*_*gie 7

从cran,您可以直接从github存储库地址安装.所以如果你想要包裹在https://github.com/twitter/AnomalyDetection:

library(devtools)
install_github("twitter/AnomalyDetection")
Run Code Online (Sandbox Code Playgroud)

诀窍.