繁体   English   中英

R data.table 包和复数值

[英]R data.table package and complex values

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

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包的当前限制,还是已知错误?

编辑:最初我认为按照 Richard 的建议更新到开发版本已经解决了这个问题,但是接下来我遇到了另一个错误。

我有一个大数据表,它是快速傅立叶变换的结果。 我最初编写了一个自定义函数,将其复杂结果拆分为实数、虚数和绝对值,以解决此错误。 但是,现在我再次需要这些复数值来进行第二次 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 时收到错误,但如果即使这个简单的代码不起作用,我也不会费心显示你我的另一个错误!

我认为我将不得不接受 data.table 还没有准备好接受复数吗? 或者,这是一些旧错误的重新出现?

谢谢你的耐心!

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

安装说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM