相关疑难解决方法(0)

为什么TRUE =="TRUE"在R中为TRUE?

  1. 为什么TRUE == "TRUE"TRUE在R'
  2. ===在R中有任何等价物吗?

更新:

这些都回归了FALSE:

TRUE == "True"
TRUE == "true"
TRUE == "T"
Run Code Online (Sandbox Code Playgroud)

唯一的TRUE价值是TRUE == "TRUE".

如果检查identical()一切正常.

第二次更新:

通过===运营商我的意思是检查的过程数据类型一的变量.在这种情况下,我假设==操作符只会比较变量的,而不是它们的数据类型.

comparison boolean-logic boolean r

53
推荐指数
2
解决办法
2828
查看次数

为什么R中"one"<2等于FALSE?

我正在阅读Hadley Wickham关于强制的高级R部分,我无法理解这种比较的结果:

"one" < 2
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)

我假设R将2强制转换为一个字符,但我不明白为什么R返回FALSE而不是返回错误.这对我来说尤其令人费解

-1 < "one"
# TRUE
Run Code Online (Sandbox Code Playgroud)

所以我的问题有两个方面:首先,为什么这个答案,第二,有没有办法看到R如何在这些例子中转换逻辑向量中的各个元素?

comparison boolean-logic boolean r coercion

15
推荐指数
2
解决办法
982
查看次数

为什么R中有1..99,999 =="1".."99,999",但100,000!="100,000"?

在控制台中,继续尝试

> sum(sapply(1:99999, function(x) { x != as.character(x) }))
0
Run Code Online (Sandbox Code Playgroud)

对于通过99999的所有值1, "1" == 1,"2" == 2,...,99999 == "99999"TRUE.然而,

> 100000 == "100000"
FALSE
Run Code Online (Sandbox Code Playgroud)

为什么R有这种古怪的行为,这是一个错误吗?什么是解决方法,例如,检查原子字符向量中的每个元素是否实际上是数字的?现在我试图检查是否x == as.numeric(x)每个x,但由于上述问题导致某些数据集失败!

boolean r coercion

8
推荐指数
1
解决办法
393
查看次数

as.character(1)== as.numeric(1)为什么是TRUE?

就像标题说的那样,为什么"1" == 1是TRUE?这背后的真正原因是什么?R是想和善还是其他呢?我一直在想,因为“ 1”(或任何数字,实际上都没有关系)被R读取为字符时,如果与as.numeric(1)或进行比较,它将自动返回FALSE as.integer(1)

> as.character(1) == as.numeric(1)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

要么

> "1" == 1
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

我想这是一个简单的问题,但我想得到一个答案。谢谢。

r

1
推荐指数
1
解决办法
69
查看次数

标签 统计

r ×4

boolean ×3

boolean-logic ×2

coercion ×2

comparison ×2