首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么悲伤的文本是积极的?

为什么悲伤的文本是积极的?
EN

Stack Overflow用户
提问于 2019-05-26 02:58:17
回答 1查看 112关注 0票数 2

我有一个字符串,虽然与数字比较它没有中断,并说这是正的,有任何提示为什么会发生这种情况吗?

代码语言:javascript
复制
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")
}

结果是:

代码语言:javascript
复制
"x is positive"
EN

回答 1

Stack Overflow用户

发布于 2019-05-26 05:07:35

代码语言:javascript
复制
?'>'

...If这两个参数是不同类型的原子向量,一个被强制为另一个的类型,优先顺序为character,complex,numeric,integer,logical和raw...

因此,当您将字符矢量x与数字类型0进行比较时,前者被转换为字符'0'

  • x == 0的计算结果为FALSE,因为"The day is bad..." != "0";
  • x < 0的计算结果为FALSE,因为在排序时,0放在"The day is bad..."之前:

字符向量中的字符串的排序顺序(

...Comparison )在字符串中是按字典顺序的,使用的是正在使用的区域设置的排序序列...

代码语言:javascript
复制
sort(c(x, 0))
#[1] "0"                                                                   
#[2] "The day is bad, I don't like anything! I feel bad and sad really sad"

这意味着由于字典顺序的原因,x被认为比'0'大。

  • 最终x > 0的计算结果为TRUE,因为'0''The day is bad, I dont...'之前,并且您的代码返回[1] x is positive

如果,为了证明我们的假设,我们问自己,Chuck Norris是否能够击败无限,我们发现事实并非如此:

代码语言:javascript
复制
'Chuck Norris' > Inf
# [1] FALSE

相比之下,基思·理查兹( Keith Richards ),正如任何人所预期的那样,对此没有问题:

代码语言:javascript
复制
'Keith Richards' > Inf
# [1] TRUE
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56307833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档