提问人:Snoeren01 提问时间:10/30/2023 更新时间:10/30/2023 访问量:56
为什么 R 中 0 >“某个字符串”的计算结果为 TRUE?[复制]
Why does "some string" > 0 evaluate to TRUE in R? [duplicate]
问:
为什么 R 的计算结果为 TRUE?
我最初认为这可能是由于隐式类型转换,或者 R 将其解释为 .情况似乎并非如此:"string" > 0
nchar("string") > 0
"some string" > 0
#[1] TRUE
# Verify if any other comparison is true:
"some string" < 0
# [1] FALSE
"some string" == 0
#[1] FALSE
# Check for implicit type conversion:
as.numeric("some string")
#[1] NA
as.integer("some string")
# [1] NA
NA == 0
#[1] NA # So this is not what is happening under the hood
# Check if the comparison is translated to nchar(...) > 0:
nchar("some string")
# [1] 11
"some string" > 1000000
#[1] TRUE # The result seems to stay the same for any number!
我发现了一个类似的PHP问题,但这并没有帮助我理解R的行为:
为什么“someString” == 0在PHP中计算为true
答:
3赞
Konrad Rudolph
10/30/2023
#1
我首先认为这可能是由于隐式类型转换造成的
是的!
只是与你的想法相反。你可以通过强制转换为通用类型来自己检查这一点——例如,将两者都放入一个向量中:
c("string", 0)
# [1] "string" "0"
因此,它将两个参数强制为 string 和 >(字符的数值按顺序排列,使所有数字都出现在所有字母之前)。"s"
"0"
评论