gpt4 book ai didi

R `Inf` 当它有 `Date` 类时正在打印 `NA`

转载 作者:行者123 更新时间:2023-12-03 20:51:19 28 4
gpt4 key购买 nike

考虑以下示例:

structure(NA_real_, class = "Date")
## [1] NA
structure(Inf, class = "Date")
## [1] NA
is.na(structure(NA_real_, class = "Date"))
## [1] TRUE
is.na(structure(Inf, class = "Date"))
## [1] FALSE

两者都打印为 NA .这是预期的行为还是错误?看到很烦 NA对于不会返回的东西 TRUEis.na() .

最佳答案

这是预期的行为。打印的不是对象。要打印,需要将对象转换为字符。 as.character.Date电话format.Date , 调用 format.POSIXlt . ?format.POSIXlt 的值部分(或 ?strptime )说:

The format methods and strftime return character vectors representing the time. NA times are returned as NA_character_.



这就是为什么 NA已打印,因为打印 structure(NA_real_, class = "Date")返回 NA_character_ .例如:
R> is.na(format(structure(Inf, class = "Date")))
[1] TRUE
R> is.na(format(structure(NaN, class = "Date")))
[1] TRUE

如果您以某种方式在代码中遇到这些不稳定的日期,我建议您使用 is.finite 来测试它们。而不是 is.na .
R> is.finite(structure(Inf, class = "Date"))
[1] FALSE
R> is.finite(structure(NaN, class = "Date"))
[1] FALSE

关于R `Inf` 当它有 `Date` 类时正在打印 `NA`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554410/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com