【发布时间】:2022-01-25 00:34:49
【问题描述】:
当我使用.Internal(inspect()) 到NA_real_ 和NaN 时,它会返回,
> .Internal(inspect(NA_real_))
@0x000001e79724d0e0 14 REALSXP g0c1 [REF(2)] (len=1, tl=0) nan
> .Internal(inspect(NaN))
@0x000001e797264a88 14 REALSXP g0c1 [REF(2)] (len=1, tl=0) nan
似乎他们唯一的区别是内存地址。
但是,当我将 NA_real_ 和 NaN 强制转换为字符时,它会返回,
> as.character(c(NaN, NA_real_))
[1] "NaN" NA
我知道它应该返回上述结果,因为NaN 不能是字符,它将被强制转换为"NaN",但NA_real 将被强制转换为NA_character_。但是考虑到他们的直觉是一样的,R 怎么可能为他们返回不同的结果呢?
提前感谢您的任何建议!
【问题讨论】: