R 为什么悲伤的文字是积极的?
我有一个字符串,当和数字比较时,它不会断开,并且说这是正的,有什么提示为什么会发生这种情况吗R 为什么悲伤的文字是积极的?,r,string,numbers,R,String,Numbers,我有一个字符串,当和数字比较时,它不会断开,并且说这是正的,有什么提示为什么会发生这种情况吗 x <- "The day is bad, I don't like anything! I feel bad and sad really sad" if (x == 0) { print("x is equal to 0") }else if (x > 0) { print("x is positive") }else if (x < 0 ){ print("x
x <- "The day is bad, I don't like anything! I feel bad and sad really sad"
if (x == 0) {
print("x is equal to 0")
}else if (x > 0) {
print("x is positive")
}else if (x < 0 ){
print("x is negative")
}
…如果这两个参数是不同类型的原子向量,则其中一个是
强制为另一个的类型,优先级的(递减)顺序
是字符、复数、数字、整数、逻辑和原始
因此,当您将作为字符向量的x
与作为数字类型的0
进行比较时,前者将转换为字符'0'
:
计算结果为x==0
,因为FALSE
李>“天气不好…”“0”
的计算结果为x<0
,因为在订购时,FALSE
放在0
:前面的是“天气不好…”
x
被认为大于'0'
- 最后,
的计算结果为x>0
,因为TRUE
在'0'
之前,您的代码返回'day is bad,I not…'
[1]x为正
'Chuck Norris' > Inf
# [1] FALSE
相反,基思·理查兹(Keith Richards),正如任何人所预料的那样,对此没有问题:
'Keith Richards' > Inf
# [1] TRUE
如果您有一个字符串“x”,那么您正在与
x==0
进行比较,您是否遗漏了任何代码?这可能是ASCII代码的结果,其中的值将大于数字0。例如,letters>0
的想法是看代码是否最终会被破解。这有点让人困惑,我看到了不应该进行这种比较的潜在问题。笑出最后一部分:0个伟大的例子!谢谢你的详细回答!
sort(c(x, 0))
#[1] "0"
#[2] "The day is bad, I don't like anything! I feel bad and sad really sad"
'Chuck Norris' > Inf
# [1] FALSE
'Keith Richards' > Inf
# [1] TRUE