gpt4 book ai didi

r - R 中什么计算 True/False?

转载 作者:行者123 更新时间:2023-12-03 07:27:26 24 4
gpt4 key购买 nike

例如,在 Ruby 中,只有 nil 和 false 是 false。 R 是什么?

例如:5==TRUE5==FALSE 均计算为 FALSE。但是,1==TRUETRUE。对于什么(对象、数字等)评估有什么一般规则吗?

最佳答案

这记录在?逻辑上。其相关部分是:

Details:

‘TRUE’ and ‘FALSE’ are reserved words denoting logical constants
in the R language, whereas ‘T’ and ‘F’ are global variables whose
initial values set to these. All four are ‘logical(1)’ vectors.

Logical vectors are coerced to integer vectors in contexts where a
numerical value is required, with ‘TRUE’ being mapped to ‘1L’,
‘FALSE’ to ‘0L’ and ‘NA’ to ‘NA_integer_’.

第二段解释了您所看到的行为,分别是 5 == 1L5 == 0L,它们都应该返回 FALSE,其中 1 == 1L0 == 0L 对于 1 == TRUE0 == 应该为 TRUE分别为 FALSE。我相信这些并不是测试你想要他们测试的东西;而是测试你想要他们测试的东西。比较基于 R 中 TRUEFALSE 的数字表示,即它们在强制转换为数字时采用的数值。

但是,只有 TRUE 才能保证为 TRUE:

> isTRUE(TRUE)
[1] TRUE
> isTRUE(1)
[1] FALSE
> isTRUE(T)
[1] TRUE
> T <- 2
> isTRUE(T)
[1] FALSE

isTRUEidentical(x, TRUE) 的包装器,从 ?isTRUE 我们注意到:

Details:
....

‘isTRUE(x)’ is an abbreviation of ‘identical(TRUE, x)’, and so is
true if and only if ‘x’ is a length-one logical vector whose only
element is ‘TRUE’ and which has no attributes (not even names).

因此,出于同样的美德,只有 FALSE 才能保证完全等于 FALSE

> identical(F, FALSE)
[1] TRUE
> identical(0, FALSE)
[1] FALSE
> F <- "hello"
> identical(F, FALSE)
[1] FALSE

如果您对此担心,请始终使用 isTRUE()identical(x, FALSE) 来检查与 TRUE 的等效性>FALSE 分别。 == 没有按照您的想法行事。

关于r - R 中什么计算 True/False?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5681166/

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