逻辑与+;R中的Inf

逻辑与+;R中的Inf,r,R,的结果应该是.logical(+Inf)? 我在探索“什么是真实的”这个概念。在R中,我认为每一个非零数字都等价于真。我期望+Inf等同于逻辑NA(既不是真的也不是假的),后两个比较似乎证实了这一点。但是,如果“”的结果与TRUE不符,那么我如何解释为.logical”的结果为TRUE呢 Mods:我做了一个合理的、真诚的努力,在发布之前寻找这个问题的副本。我试着在关键字“Inf”和“logical”下搜索。我发现了一些C++的结果,但不是R。如果这是一个DUP,我真的很想知道我是如何搜索并找到

的结果应该是.logical(+Inf)?

我在探索“什么是真实的”这个概念。在R中,我认为每一个非零数字都等价于真。我期望+Inf等同于逻辑NA(既不是真的也不是假的),后两个比较似乎证实了这一点。但是,如果“
”的结果与TRUE不符,那么我如何解释为.logical
”的结果为TRUE呢

Mods:我做了一个合理的、真诚的努力,在发布之前寻找这个问题的副本。我试着在关键字“Inf”和“logical”下搜索。我发现了一些C++的结果,但不是R。如果这是一个DUP,我真的很想知道我是如何搜索并找到它的。p>
as.logical将每个非零、非NA数字转换为TRUE。在比较中,TRUE强制为1。您不能像这样与Inf进行比较。Use is.finite.Inf和-Inf不是数字。(我不记得以前见过这个问题,但你可以尝试搜索Rhelp档案。)@Roland那么你是说“==”强制为1,而不是强制为Inf。我想强制的规则对我来说并不完全清楚。那么,是什么阻止了这两个角色被强迫?(我知道这会造成严重破坏,不是一件好事,但我找不到帮助页面(尽管我知道我已经看过多次)这描述了base R中的强制逻辑。
?强制
将我们发送到
?setAs
,它关注S$函数行为。@42-它查找优先级较高的那一方并强制该数据类型。它可能也在语言定义中描述。谢谢,语言Def doc可能就是我看到的。如.logical将每个非零、非NA的数字转换为TRUE。在比较中,TRUE强制为1。您不能像这样与Inf进行比较。Use is.finite.Inf和-Inf不是数字。(我不记得以前见过这个问题,但您可以尝试搜索Rhelp存档。)@罗兰,你是说“==”强制为1,而不是强制为Inf。我想强制的规则对我来说并不完全清楚。那么,是什么阻止了这两者被强制为角色?(我知道这会造成混乱,不是一件好事,但我找不到帮助页面(尽管我知道我已经看过多次)这描述了base R中的强制逻辑。
?强制
将我们发送到
?setAs
,它专注于S$函数行为。@42-它查找优先级较高的那一方并强制该数据类型。它可能也在语言定义中描述。谢谢,语言Def doc可能就是我看到它的地方。
> as.logical(+Inf)
[1] TRUE
> Inf==TRUE
[1] FALSE
> Inf==FALSE
[1] FALSE