わかりました、これは私を完全に困惑させ、心配させます-ルーチンの一部として、変数の個々の観測値を、それらの値が中央値より上か下か、またはそれに等しいかに基づいTRUE
て分類してきました。FALSE
ただし、この単純なテストを実行すると、R で予想外の動作が発生することがあります。
したがって、次の一連の観察を行います。
data=c(0.6666667, 0.8333, 0.6666667, 0.8333, 0.8333, 0.75, 0.9999, 0.7499667, 0.25, 0.6666667, 0.1667, 0.7499667, 0.5, 0.2500333, 0.3333667, 0.0834, 0.0001, 0.2500333, 0.8333, 0.9999, 0.9999, 0.2500333, 0.2500333, 0.3333667, 0.9166, 0.5, 0.2500333, 0.4166667, 0.0001, 0.1667333, 0.6666333, 0.0834, 0.1667, 0.6666333, 0.9166, 0.1667, 0.7499333, 0.9166, 0.9166, 0.9166, 0.7499667, 0.7499667, 0.4166667, 0.5, 0.2500333, 0.9166, 0.6666667, 0.1667333, 0.25, 0.0001, 0.3333667, 0.0001, 0.25, 0.0834, 0.9999, 0.0834, 0.1667, 0.5, 0.2500333, 0.3333667, 0.9166, 0.9166, 0.8333, 0.9166, 0.75, 0.0834, 0.4166667, 0.5, 0.0001, 0.9999, 0.8333, 0.6666667, 0.9166)
これらの値を分類するために、次のことを行いました。
data_med=median(data)
quant_data=data
quant_data[quant_data>data_med]="High"
quant_data[quant_data<=data_med]="Low"
これをより効率的に行う方法が無数にあることは知っていますが、私が心配しているのは、これからの出力が意味をなさないことです。セットには sがなくNaN
、テストはすべて包括的 (>
または) であるため、最終的に/値<=
のみのリストになるはずですが、代わりに次のようになります。TRUE
FALSE
[1] "High" "High" "High" "High" "High" "High" "High" "High" "Low" "High" "Low" "High" "Low" "Low" "Low" "Low" "1e-04"
[18] "Low" "High" "High" "High" "Low" "Low" "Low" "High" "Low" "Low" "Low" "1e-04" "Low" "High" "Low" "Low" "High"
[35] "High" "Low" "High" "High" "High" "High" "High" "High" "Low" "Low" "Low" "High" "High" "Low" "Low" "1e-04" "Low"
[52] "1e-04" "Low" "Low" "High" "Low" "Low" "Low" "Low" "Low" "High" "High" "High" "High" "High" "Low" "Low" "Low"
[69] "1e-04" "High" "High" "High" "High"
「1e-04」が見えますか?さらに奇妙なことに、奇妙な値を返す値の 1 つである値 69 を選びましょう。
data[69]
>1e-04
この値を単独でテストすると、期待どおりの結果が得られます。
data[69]<=data_med
TRUE
誰かがこの動作を説明できますか? 一見危なそうな…。