function のどういうわけか奇妙な (または単に予期しない?) 動作に遭遇しました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)
が、問題の原因に興味があります。
コメントありがとうございます。