我使用%in%
来比较两个列表,一个包含数字值的向量,另一个包含相应的整数值。结果非常奇怪;有时是TRUE
,有时是FALSE
,我无法弄清原因。
例如下面的代码会返回TRUE
list(c(1, 1)) %in% list(c(1L, 1L))
然而,如果我们将向量中的第二个数字更改为2和2L,我们会得到FALSE
list(c(1, 2)) %in% list(c(1L, 2L))
将第二个数字更改为3或4再次返回
TRUE
。list(c(1, 3)) %in% list(c(1L, 3L))
list(c(1, 4)) %in% list(c(1L, 4L))
再使用其他值会再次产生FALSE
,但我看不出任何模式。例如,使用8和9的结果是FALSE
:
list(c(8, 9)) %in% list(c(8L, 9L))
有人知道为什么会这样吗?这真的很让人困惑,我完全不知道它为什么会发生。
as.character
链接,我在研究中没有考虑到它。 - r2evansas.numeric()
的解决方法有效。 - Honestiore