私はいくつかのデータ、高さを持っています。
> print(height)
V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
0.0000000 -3.1486232 39.1502937 -2.8437808 -24.7633269 -35.4022061 -36.2401943 46.4133021 -19.1868097 0.4067331 22.6768200 -38.8550971 -41.3161054
V16 V17 V18 V19 V20
33.0446273 41.4934899 19.9558741 3.3477473 0.3611974
次に、turnpoints() を適用し、extract() を使用して、最小値の位置を示す論理ベクトルのように見えるものを取得します。
tp = turnpoints(height)
pitpositions = extract(tp, peak = FALSE, pit = TRUE)
print(pitpositions) # [1] 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0
height[pitpositions]
それが最小の値を与え、それheight[!pitpositions]
が非最小の値を与えると私は期待しています。
後者は期待どおりに機能します。
> height[!pitpositions]
V3 V5 V6 V7 V8 V10 V12 V13 V14 V16 V17 V18 V19
0.0000000 39.1502937 -2.8437808 -24.7633269 -35.4022061 46.4133021 0.4067331 22.6768200 -38.8550971 33.0446273 41.4934899 19.9558741 3.3477473
V20
0.3611974
しかし、前者はそうではなく、結果を解釈する方法がわかりません。
> height[pitpositions]
V3 V3 V3 V3
0 0 0 0
だから私の質問は:
- なぜこうなった?
- 探している結果を取得するにはどうすればよいですか (基本的には高さの反対[!ピットポジション]?
編集:
質問 2 に答えるには、 を使用して探しているものを取得できますheight[tp$pits]
。tp$pits は と同じ情報を持っているようですが、pitpositions
印刷するpitpositoins
と一連の が得られますが、TRUE
FALSE
印刷するtp$pits
と一連の が得られ0 1
ます。0 == FALSE
と のように、これらは同等だと思っていたでしょう1 == TRUE
。