为什么返回TRUE:
15 == 1|2|10
Run Code Online (Sandbox Code Playgroud)
我认为这将是15与1或2或10相同,这将导致FALSE.
如果你看一下R如何解析代码,这个
15 == 1|2|10
Run Code Online (Sandbox Code Playgroud)
是相同的
(((15 == 1) | 2) | 10)
Run Code Online (Sandbox Code Playgroud)
凡|将返回TRUE,如果值中的一个不存在虚假(或0).所以,15==1是FALSE但FALSE | 2就是TRUE因为2不为0,然后TRUE | 10也是如此.所以
( FALSE | TRUE) | TRUE) == TRUE
Run Code Online (Sandbox Code Playgroud)
不要|用于匹配多个值中的一个.使用%in%测试如果值包含在值的向量.
15 %in% c(1, 2, 10)
Run Code Online (Sandbox Code Playgroud)