数据表中的R rowsum崩溃R

时间:2017-12-22 22:15:11

标签: r data.table openmp

以下代码可以正常使用

library(data.table)
dt <- data.table(mtcars)[,.(cyl, gear, mpg)]
colsToSum <- c("cyl", "gear", "mpg")
dt[, F15_49 := rowSums(.SD), .SDcols = colsToSum]

但是这个版本会在RStudio中崩溃R,并显示消息“R Session Aborted .R遇到致命错误。会话终止了。”接下来是“开始新会话”按钮。崩溃的代码段是

ageColsToSum <- c("F15_19", "F20_24", "F25_29", "F30_34", "F35_39", "F40_44", "F45_49")
dt.SSP.scen.wide[, F15_49 := rowSums(.SD), .SDcols = ageColsToSum]

当我在shell中运行R中的代码时,我收到以下消息。

OMP:错误#15:初始化libomp.dylib,但发现libomp.dylib已经初始化。 OMP:提示:这意味着OpenMP运行时的多个副本已链接到该程序中。这很危险,因为它会降低性能或导致错误的结果。最好的办法是确保只有一个OpenMP运行时链接到进程中,例如避免在任何库中静态链接OpenMP运行时。作为不安全,不受支持,未记录的变通方法,您可以将环境变量KMP_DUPLICATE_LIB_OK = TRUE设置为允许程序继续执行,但这可能会导致崩溃或无声地产生不正确的结果。有关详细信息,请参阅http://www.intel.com/software/products/support/。 中止陷阱:6

我对openMP一无所知,所以我不知道什么可以初始化libomp.dylib。

1 个答案:

答案 0 :(得分:2)

我按照https://github.com/Rdatatable/data.table/wiki/Installation的说明安装了data.table 1.10.5的开发版本。我的代码现在有效。