【问题标题】:What does ((111 >= 111) | !(TRUE)) & ((4 + 1) == 5) mean?((111 >= 111) | !(TRUE)) & ((4 + 1) == 5) 是什么意思?
【发布时间】:2016-04-14 13:12:36
【问题描述】:

我目前正在学习R,我遇到了这个表达:

((111 >= 111) | !(TRUE)) & ((4 + 1) == 5)

有人知道这是什么意思吗?我试图问我的计量经济学教授,但他自己并不使用 R。所以他不知道。

谢谢。

【问题讨论】:

  • 它是一个逻辑表达式,更多信息:r-tutor.com/r-introduction/basic-data-types/logical
  • !(TRUE)FALSE,通过使用|,它将依赖(111>=111) 来获得真/假。因此,如果该表达式是 FALSE,那么 FALSE|FALSE 将与 & 结合为 FALSE,无论 (4+1) ==5 的逻辑结果是什么,它始终是 FALSE
  • 嗯,我知道这是一个逻辑表达式,但我不知道它的本质。

标签: r


【解决方案1】:

你是从哪里看到这个表达的?这很可能只是为了让您考虑 R 中的评估和布尔值。本质上,在括号内工作并向外工作,直到没有任何东西可以评估。让我们一步一步来:

((111 >= 111) | !(TRUE)) & ((4 + 1) == 5)

第 1 步:

(111 >= 111)。嗯,这是 TRUE,因为 111 == 111。所以现在我们有以下 (TRUE | !(TRUE)) & ((4 + 1) == 5)

第 2 步:

!(TRUE)! 表示“不是”,只是反转一个布尔值。所以,!TRUEFALSE 相同,!FALSETRUE 相同。因此,我们只剩下这个:(TRUE | FALSE) & ((4 + 1) == 5)

第三步:

(TRUE | FALSE)| 表示“或”并检查至少一个条件是否为TRUE。这里我们有两个条件,TRUEFALSE。由于其中之一是TRUE,因此整个表达式的计算结果为TRUE。因此,我们现在有了TRUE & ((4 + 1) == 5)

第四步:

((4 + 1) == 5)。这显然是TRUE,因为4 + 1 == 5,所以我们现在有TRUE & TRUE

第五步:

TRUE & TRUE& 表示“和”,它检查 所有 条件是否为 TRUE。由于我们的两个条件是TRUETRUE,因此所有条件都是TRUE,因此计算结果为TRUE

因此,在 5 个求值步骤结束时,我们发现整个表达式的求值结果为 TRUE。通过阅读 cmets 中提供的链接 @mtoto 可以帮助您更好地理解这一点,您会受益匪浅。

希望对您有所帮助。

【讨论】:

  • 你熟悉 R 中的漩涡脚本吗?当我不得不回答向量是真还是假时,我遇到了这个表达式。
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 2011-04-04
  • 2020-07-05
  • 2018-09-07
  • 2016-08-19
  • 2015-07-11
  • 1970-01-01
相关资源
最近更新 更多