R从Shell安装包

 手机用户2502932937 发布于 2022-12-10 19:33

我正在尝试使用R实现Hadoop Streaming的reducer.但是,我需要找到一种方法来访问某些不是用R,dplyr..etc构建的库.基于我的研究似乎有两种方法:

(1)在reducer代码中,将所需的库安装到临时文件夹中,它们将在会话完成后处理,如下所示:

.libPaths(c(.libPaths(), temp <- tempdir()))
install.packages("dplyr", lib=temp, repos='http://cran.us.r-project.org')
library(dplyr)
...

但是,这种方法会产生巨大的开销,具体取决于您尝试安装的库数量.因此,大多数时间都会浪费在安装库上(像dplyr这样的复杂库有很多依赖项,在vanilla R会话上安装需要几分钟).

所以听起来我需要事先安装它,这导致我们接近2.

(2)我的集群相当大.而且我必须使用像Ansible这样的工具来使它工作.所以我更喜欢使用一个Linux shell命令来安装库.我之前看过R CMD INSTALL...,感觉就像只从源文件安装软件包而不是install.packages()在R控制台中进行,找出镜像,拉出源文件,在一个命令中安装它.

谁能告诉我如何在shell中使用一个命令行来非交互式安装R包?(对不起这么多背景知识,如果有人认为我甚至没有遵循正确的哲学,请随意留下评论如何管理整个集群R包.)

1 个回答
  • 虽然Dirk的小小看起来很有趣,但我发现它并不是那么简单,因为你需要部署install.r脚本才能使用该功能.这在交互式工作时不是问题,但对于自动安装脚本,它会增加一些开销 - 也许Dirk可以为此添加一些示例.

    所以替代方案是:

    Rscript -e 'install.packages("drat", repos="https://cran.rstudio.com")'
    

    2022-12-11 02:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有