R data.table包和复杂值

Gar*_*ard 1 r data.table

我是数据表包的新手,到目前为止它令人难以置信!有一个故障......

data.table似乎不喜欢复杂的数字.例如,代码:

DT <- data.table(x = as.complex(1:5))
DT[1]
Run Code Online (Sandbox Code Playgroud)

产生错误:

Error in `[.data.table`(DT, 1) : Unknown column type 'complex'
Run Code Online (Sandbox Code Playgroud)

我搜索了高低,除非我是一个巨大的白痴我找不到任何关于此的信息,除了一个模糊的github编辑:github

这只是data.table包的当前限制,还是已知错误?

编辑:最初我认为按照理查德的建议更新到开发版本已经解决了这个问题,但是在我接下来的几步之后又遇到了另一个错误.

我有一个大型数据表,它是快速傅里叶变换的结果.我最初写了一个自定义函数,将其复杂的结果分成实数,虚数和绝对值,以解决这个问题.但是,现在我再次需要这些复杂的值来进行第二次FFT,这就是我遇到问题的地方.

我从rbindlist获得了另一个警告消息,该消息还表示它不支持复杂的列,并且在尝试为此问题编写一些可重现的代码时,遇到了这个新错误:

stacktest<-data.table(x=complex(real=1:60, imaginary=-1:-60),y=LETTERS[1:10],z=rep(1:2,5))

setkey(stacktest, z)

Error in setkeyv(x, cols, verbose = verbose, physical = physical) : 
  Item 1 of list is type 'complex' which isn't yet supported
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在我的实际数据帧上使用setkey时没有得到这个错误,该数据帧的列只包含复数值,而是在尝试dcast时出错,但即使这个简单的代码不起作用我也不会打扰你我的另一个错误!

我接受它我将不得不接受data.table还没准备好复杂的数字呢?或者通过某种机会这是一些旧bug的重铺?

谢谢你的耐心!

Ric*_*ven 5

这是一个错误.看起来它已在最新的开发版本中修复.您可以使用软件包devtools从github安装.

安装说明

packageVersion("data.table")
# [1] ‘1.9.5’
dt <- data.table(x = as.complex(1:5))
dt[1]
#       x
# 1: 1+0i
Run Code Online (Sandbox Code Playgroud)