data.table 中的字符不支持 Gforce 最小值

Gforce min not supported for character in data.table

尝试使用 data.table 1.9.4 获取字符向量的最小值时,出现以下错误:

Type 'character' not supported by GForce min (gmin). 
Either add the prefix base::min(.) or turn off 
GForce optimization using options(datatable.optimize=1)

很公平,但这破坏了我现有的很多代码!我可以使用 options(datatable.optimize=1) 关闭此优化。尽管如此,如果 is.character == TRUE 是否仍然可以简单地使用 base::min,否则就使用 GForce 优化?

已在 commit 1734 of data.table v1.9.5 中实施。

require(data.table) ## 1.9.5
set.seed(1L)
DT = data.table(x=sample(3,10,TRUE), y=sample(letters[1:3], 10,TRUE))
options(datatable.verbose=TRUE)

DT[, .(min(y), max(y)), by=x]
# Detected that j uses these columns: y 
# Finding groups (bysameorder=FALSE) ... done in 0secs. bysameorder=FALSE and o__ is length 10
# lapply optimization is on, j unchanged as 'list(min(y), max(y))'
# GForce optimized j to 'list(gmin(y), gmax(y))'
#    x V1 V2
# 1: 1  a  c
# 2: 2  a  c
# 3: 3  b  c

如有不妥请回信。