如何从源代码安装R包?

一个朋友给我发了一个关于webscraping The New York Times with R的很棒的教程。我真的很想试试。但是,第一步是从源代码安装一个名为[RJSONIO][2]的包。

我对R相当了解,但我不知道如何从源代码安装包。

我运行的是macOS (OS X)。

614179 次浏览

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

install.packages(path_to_file, repos = NULL, type="source")

其中path_to_file表示完整路径和文件名:

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

下载源包,打开终端。应用程序,导航到当前文件所在的目录,然后执行:

R CMD INSTALL RJSONIO_0.2-3.tar.gz

请注意,这只会在以下情况下成功:a)包不需要编译或b)存在编译所需的系统工具。看:R for Mac OS X

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

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")

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

R CMD build --binary RJSONIO_0.2-3.tar.gz

从源代码安装旧版本包的另一个方便(但不重要)技巧。

首先,如果你调用“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")

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

另外:你可以在devtools库的dev_mode中使用这个技巧,以便管理不同版本的包:

参考:医生devtools

从凹口,你可以直接从GitHub存储库地址安装。所以如果你想要https://github.com/twitter/AnomalyDetection的包,使用

library(devtools)
install_github("twitter/AnomalyDetection")

很管用。