我遇到了函数的某种奇怪(或只是没想到?)的行为seq
。创建简单序列时,某些值无法与 == 运算符正确匹配。看这个最小的例子:
my.seq <- seq(0, 0.4, len = 5)
table(my.seq) # ok! returns 0 0.1 0.2 0.3 0.4
# 1 1 1 1 1
which(my.seq == 0.2) # ok! returns 3
which(my.seq == 0.3) # !!! returns integer(0)
手动创建我的序列时,它似乎可以工作,但是:
my.seq2 <- c(0.00, 0.10, 0.20, 0.30, 0.40)
which(my.seq2 == 0.3) # ok! returns 4
你对此有什么解释吗?我通过使用解决了这个问题,which(round(my.seq, 2) == 0.3)
但我会对导致问题的原因感兴趣。
提前感谢您的评论。