【问题标题】:One function to detect NaN, NA, Inf, -Inf, etc.?一种检测 NaN、NA、Inf、-Inf 等的功能?
【发布时间】:2011-11-23 00:17:37
【问题描述】:

R 中是否有一个函数可以确定一个值是NANaNInf-Inf,还是不是格式正确的数字?

【问题讨论】:

    标签: r nan na r-faq


    【解决方案1】:

    你想要is.finite

    > is.finite(NA)
    [1] FALSE
    > is.finite(NaN)
    [1] FALSE
    > is.finite(Inf)
    [1] FALSE
    > is.finite(1L)
    [1] TRUE
    > is.finite(1.0)
    [1] TRUE
    > is.finite("A")
    [1] FALSE
    > is.finite(pi)
    [1] TRUE
    > is.finite(1+0i)
    [1] TRUE
    

    【讨论】:

    • 请注意,is.finite(TRUE) 也会返回 TRUE
    • @kohske:好点子。 is.finite(FALSE) 也返回 TRUE。这可能是因为 TRUEFALSE 只是整数。
    • True 和 false 不是整数 - 但它们将被强制转换而不会出现错误/警告消息
    • @hadley:我不清楚;感谢您的澄清。我指的是 R 布尔值是 C 级别的 32 位整数,而不是 is.integer(TRUE) 会返回 TRUE
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2023-03-05
    • 2020-07-24
    • 2021-12-14
    • 2019-05-12
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多