如何从源代码安装 R 包?

问题描述 投票:0回答:7

一位朋友向我发送了这个关于使用 R 进行 网络抓取 纽约时报 的精彩教程。我真的很想尝试一下。但是,第一步是从源安装一个名为 [RJSONIO][2] 的包。

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

我运行的是 macOS (OS X)。

r install.packages r-faq
7个回答
610
投票

如果您本地有该文件,则使用

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"

115
投票

下载源码包,打开Terminal.app,定位到当前文件所在目录,然后执行:

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

请注意,只有在以下情况下才会成功:a)包不需要编译或b)存在编译所需的系统工具。请参阅:R(适用于 Mac OS X)


56
投票

您可以直接从存储库安装(注意

type="source"
):

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

36
投票

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

首先,如果您调用“install.packages”,它总是从存储库安装最新的软件包。如果你想安装旧版本的软件包,比如说为了兼容性,你可以调用 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 结合使用,以管理不同版本的包:

参考:doc devtools


12
投票

从CRAN,您可以直接从GitHub存储库地址安装。因此,如果您想要

https://github.com/twitter/AnomalyDetection
处的包裹,请使用

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

就可以了。


9
投票

此外,您可以使用

--binary
选项构建二进制包。

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

1
投票

如果您有自己编写、从 GitHub 下载(克隆)的源代码,或者从其他来源复制或移动到您的计算机,则安装包/库的一种简单方法是:

在R中

就这么简单:

# install.packages("devtools")
devtools::install('path/to/package')

从航站楼

这里,您可以克隆 GitHub 存储库并使用以下命令进行安装:

git clone https://github.com/user/repo.git
R -e "install.packages('devtools');devtools::install('path/to/package')"

或者,如果您已经安装了开发工具,您可以跳过第一部分,只需克隆存储库并运行:

R -e "devtools::install('path/to/package')"

请注意,如果您使用的是 ubuntu,请在安装 devtools 之前安装这些系统库(否则 devtools 将无法正确安装)。

apt-get update
apt-get install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev -y
© www.soinside.com 2019 - 2024. All rights reserved.