Xts 对象比较

数据挖掘 r
2022-03-05 15:07:52

试图比较 xts 对象,想确保 Ret 和 Ret2 列是相同的。

    head(rts.fut)
            Open  High   Low Close Close.prev        Ret       Ret2
2015-01-05 78450 78450 72470 73100         NA         NA         NA
2015-01-06 73230 74900 71000 72760      73100 -0.4651163 -0.4651163
2015-01-08 72800 81380 72800 80190      72760 10.2116548 10.2116548
2015-01-09 80190 81050 74450 77330      80190 -3.5665295 -3.5665295
2015-01-12 77140 77140 73180 74490      77330 -3.6725721 -3.6725721
2015-01-13 74230 74230 70870 73470      74490 -1.3693113 -1.3693113

结果:

 > head(rts.fut$Ret)==head(rts.fut$Ret2)
             Ret
2015-01-05    NA
2015-01-06 FALSE
2015-01-08 FALSE
2015-01-09 FALSE
2015-01-12 FALSE
2015-01-13 FALSE

任何帮助将不胜感激,
谢谢,

1个回答

这没有必要与xts. 您正在与浮点值进行比较。作为这个优秀资源中的指针,这些类型的比较是危险的。如果你没有Inf,最好-Inf的编码方式NaN是,

(abs(rts.fut$Ret - rts.fut$Ret2) / pmin(abs(rts.fut$Ret) + abs(rts.fut$Ret2),
  .Machine$double.eps)) < .Machine$double.eps

希望这可以帮助。