在Ubuntu中安装R包的首选方法是什么?

我在ubuntu中安装R,但是我对安装软件包的许多选项感到困惑。

传统的方法是通过install.package()在R中安装它们。 但Ubuntu提供了使用apt-get进行安装的可能性。 这很有趣,因为操作系统会更新软件包。 由于它们只有几个可用的包,它迟早会产生问题。 我最终将通过传统的方式安装软件包,以不同的方式安装它们,也许(?)这也会产生版本问题。

在Ubuntu中安装和保存R包的首选方法是什么?

我认为通过Ubuntu repos提供的唯一R包是由R开发核心团队维护的包。 与大多数软件包一样, apt或synaptic提供的软件包并不总是最新版本。 幸运的是,您可以通过在/etc/apt/sources.list.d/CRAN.list中创建包含单行文本的新文件来添加CRAN维护的软件源:

 deb http://cran.r-project.org/bin/linux/ubuntu trusty/ 

(替换trusty/与您的发行版的代号;如果您不知道它将lsb_release -c键入终端)。 在此之后(以及一个apt update ),您的包管理器将始终安装(或更新)CRAN维护的r-baser-base-core等版本,因为它们的版本号将高于debian消息来源。 如果apt抱怨repo没有签名,请看这里 。

对于所有其他包(AKA“贡献包”),我更喜欢尽可能安装在R中通过install.packages(c("name_of_package", "name_of_other_package")) ,除非我知道CRAN上的版本是旧的并且新版本具有我需要的function。 在这种情况下,您可以使用devtools::install_github('AccountName/RepositoryName')从GitHub安装或下载存档,并通过R CMD INSTALL name_of_package.tar.gz从终端窗口R CMD INSTALL name_of_package.tar.gz ,或通过install.packages("/path/to/downloaded/package.tar.gz", repos=NULL, type="source") R CMD INSTALL name_of_package.tar.gz在R中install.packages("/path/to/downloaded/package.tar.gz", repos=NULL, type="source")

为了完整起见 ,这是CRAN的官方指导 。

我通常会尽可能使用apt-get r-cran安装,因为它以更清洁的方式处理依赖关系和更新。 只有当它不可用时,我才会使用R中的安装。

请注意,R Debian软件包有两个存储库:

  1. 官方R:提供一些套餐。 要包含它,您需要添加更新source.list文件的repo的链接。 这在CRAN-ubuntu页面上有记录 ,然后运行apt-get update ,然后进行升级
  2. PPA:Michael rutter提供了一个ppa , cran2deb4ubuntu ,它包含更多的包。 有关某些文档,请参阅此博客的结尾。 您只需要运行(然后在更新/升级后):

      sudo add-apt-repository ppa:marutter/c2d4u 

请注意,对于R 3.5.0,repo名称已更改,Michael Rutter预编译的任务视图库现在可从cran2deb4ubuntu_3.5获得