【发布时间】:2015-12-11 06:33:30
【问题描述】:
我对 R 中的逻辑表达式感到非常困惑。以下命令给了我预期的结果,因为 1 等于 1 或等于 2:
> 1 == (1 | 2)
[1] TRUE
但另一方面我得到:
3 == (3 | 4)
[1] FALSE
如果有人能对这里发生的事情提供一些见解,我将不胜感激!
【问题讨论】:
-
您不能将
or与数字一起使用。在第一个语句1中插入T您可以使用%in%或(3 == 3 | 3== 4) -
在控制台中试试这些:
(3 | 4);(1 | 2);1 == TRUE;1 == (3 | 4);0 == FALSE;3 == FALSE;3 == TRUE等 -
只是为了扩展 @Batanichek 所说的内容,
TRUE和FALSE在数字上下文中将分别解释为 1 和 0(例如,尝试as.numeric(c(FALSE,TRUE))或sum(c(TRUE, TRUE))) .对于带有数字的一般逻辑运算,您可以使用%in%(例如3 %in% c(3,4))。 -
感谢您的 cmets! %in% 函数确实是我想要的。
标签: r logical-operators