我正在学习R,我遇到了这个表达:
((111> = 111)|!(TRUE))& ((4 + 1)== 5)
有人知道这意味着什么吗?我试着问我的计量经济学教授,但他并没有自己使用R.所以他不知道。
谢谢。
答案 0 :(得分:4)
你在哪里遇到过这个表达?这很可能只是为了让你考虑R中的评估和布尔值。本质上,在括号内工作并向外工作,直到没有任何东西需要评估。让我们一步一步地完成它:
((111 >= 111) | !(TRUE)) & ((4 + 1) == 5)
(111 >= 111)
。好吧,这是TRUE
因为111 == 111.所以现在我们有以下(TRUE | !(TRUE)) & ((4 + 1) == 5)
。
!(TRUE)
。 !
表示“不”,只是反转一个布尔值。因此,!TRUE
与FALSE
相同,!FALSE
与TRUE
相同。因此,我们留下了这个:(TRUE | FALSE) & ((4 + 1) == 5)
。
(TRUE | FALSE)
。 |
表示“或”,并检查至少一个条件是否为TRUE
。在这里,我们有两个条件,TRUE
和FALSE
。由于其中一个是TRUE
,因此整个表达式的计算结果为TRUE
。因此,我们现在有TRUE & ((4 + 1) == 5)
。
((4 + 1) == 5)
。这显然是TRUE
4 + 1 == 5
,因此我们现在有TRUE & TRUE
。
TRUE & TRUE
。 &
表示“和”,它会检查所有条件是TRUE
。由于我们的两个条件是TRUE
和TRUE
,因此所有条件都是TRUE
,因此评估为TRUE
。
因此,在评估的5个步骤结束时,我们发现整个表达式的计算结果为TRUE
。通过阅读评论中提供的@mtoto链接,您将从中受益匪浅,以帮助您更好地理解这一点。
希望有所帮助。