which.maxの結果を0と比較して、データに最大値が見つかったかどうかを確認しようとしています。説明のために:私がそれらの最大のインデックスをチェックしなければならない約24.000のベクトルがあります。
ちょっとした例を次に示します。
tmp <- which.max(c(NA, NA, NA, NA))
str(tmp)
tmp == 0
as.integer(tmp) == 0
as.numeric(tmp) == 0
str(tmp)はint(0)を返しますが、結果はFALSE、FALSE、およびFALSEになります。
回避策として私がしたことはこれです:
tmp <- which.max(c(NA, NA, NA, NA))
isTRUE(as.logical(tmp))
which.max()が最大値を検出したかどうかに関係なく、これは差別化で機能します。ただし、上記の比較が機能しない理由がわかりません。
おまけの質問:比較の失敗を即座に理解するためにtmpオブジェクトの構造を簡単に示してくれたstr()以外の関数はありますか?
ありがとう!