我是数据表包的新手,到目前为止令人难以置信!有一个故障...
data.table
似乎不喜欢复数。例如,代码:
DT <- data.table(x = as.complex(1:5))
DT[1]
产生错误:
Error in `[.data.table`(DT, 1) : Unknown column type 'complex'
我已经搜索过高低,除非我是一个巨大的白痴,否则我找不到任何相关信息,除了一个模糊的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
这很奇怪,因为在我的实际数据帧上使用setkey时没有出现此错误,该数据帧的列只包含复数值,而是在尝试dcast时出错,但即使这个简单的代码也没有#39工作我不会再向你显示我的其他错误了!
我认为我只是必须接受数据。表格还没准备好复数吗?或者通过某种机会这是一些旧的虫子的重铺?
感谢您的耐心等待!
答案 0 :(得分:5)
这是一个错误。在最新的开发版本中看起来像it was fixed。您可以使用包 devtools 从github安装。
packageVersion("data.table")
# [1] ‘1.9.5’
dt <- data.table(x = as.complex(1:5))
dt[1]
# x
# 1: 1+0i