R包data.table无法在具有R 3.5.1的系统上安装/编译

时间:2019-02-04 16:57:03

标签: r installation package

我正在尝试使用以下方法重新安装data.table:

install.packages("data.table")

我收到以下编译错误:

forder.c: In function ‘range_str’:
forder.c:296: error: expected end of line before ‘update’
make: *** [forder.o] Error 1
ERROR: compilation failed for package ‘data.table’

我从cran获得的软件包是: data.table_1.12.0.tar.gz 应该是与3.5兼容的版本,而不是data.table 1.10

的问题

打开的系统是RHEL 6.9 +我也已经通过yum更新了gcc。

R版本也比yum更新了:R-core-3.5.1-1.el6.x86_64 R-core-devel-3.5.1-1.el6.x86_64

我在Google上可以找到的所有内容都与Rtools(Windows)或旧版本1.10有关,这似乎又是另一回事。

3 个答案:

答案 0 :(得分:2)

您可以在EL6上安装较旧版本的data.table。 1.11.4工作;我不确定较新的版本。

require(devtools)
install_version("data.table", version = "1.11.4")

有关安装较旧版本软件包的更多信息:https://support.rstudio.com/hc/en-us/articles/219949047-Installing-older-versions-of-packages

答案 1 :(得分:0)

错误消息中提到的行是:

#pragma omp atomic update

该功能显然在4.7版之前的GCC中不可用,而在RedHat 6.9上,我目前从标准存储库中获得的最高收益是4.4.7。

意味着我需要一个较新的编译器,它可以处理此openmp功能。

答案 2 :(得分:0)

在R 3.5.0中安装data.table时出现了相同的错误

在CentOS 6.10(具有gcc和g ++版本4.4.7)上,这是我能够安装data.table的方式:

  1. yum install devtoolset-6
  2. scl enable devtoolset-6 bash
    现在,如果您这样做:`which gcc` -v,应该会看到更高的gcc版本
  3. R
    启动R 3.5.0
  4. install.packages("data.table")
    现在我可以安装data.table