[英]Why does NaN!=NaN return NA instead of TRUE in R
據我所知,在IEEE 754標准中,對於所有x值(包括Nan), x==NaN
應該為false,但是當我在https://rextester.com/l/r_online_compiler中測試NaN==NaN
,它將返回NA
代替。
這是否違反標准? 這種設計選擇背后有什么道理嗎? 我主要是出於好奇而問,因為這種情況很少出現。
我認為這個答案可以走兩條路。 您可以談論IEEE 754和各種類型的NaN(信號NaN和“安靜” NaN),以及這是否是您的好奇心所在。 可能值得研究。
但是,在R中,NaN是“特殊值”和保留字。 它將被視為數字(浮點,實數,虛數,復數等)
R中的一般規則是,任何涉及NaN的計算都將返回NaN或NA。 “這可能取決於R平台”。 (請參閱下面的鏈接)。 本質上,根據R選擇如何解釋您的代碼,通常通常通常會拋出NaN或NA。
測試NaN是否存在的唯一可靠方法是使用謂詞is.nan()
https://stat.ethz.ch/R-manual/R-devel/library/base/html/is.finite.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.