私は40.日の最高気温と最低気温を持つdata.frameを持っており、最高気温の90パーセンタイルと最低気温の85パーセンタイルを超える最高気温温度。rの条件付き選択のためのローリングパーセンタイル
私は
> head(df)
YEAR MONTH DAY Date MEAN MAX MIN
1 1965 1 1 1/1/1965 NA 27.0 17.0
2 1965 1 2 1/2/1965 24.0 28.0 20.7
3 1965 1 3 1/3/1965 19.9 23.7 16.2
4 1965 1 4 1/4/1965 18.0 23.4 12.0
5 1965 1 5 1/5/1965 19.7 24.0 14.0
6 1965 1 6 1/6/1965 18.6 24.0 13.0
df[, hotday := +(df$MAX>=(quantile(df$MAX,.90, na.rm = T, type = 6)) & df$MIN>=(quantile(df$MIN,.85, na.rm = T, type = 6)))
] [, length := with(rle(hotday), rep(lengths,lengths)) # to calculate lenght so I can select consecutive days only
] [hotday==0, length:=0][!!hotday, Highest_Mean := max(MEAN) , rleid(length)][] # to find the highest Mean temp for each consecutive group
ことを行うことができた。しかし、私は(すなわち、特定の日のために、最高温度の90パーセンタイルは90番目であるごとに15日間を中心とローリングパーセンタイルを使用して同じことを行う必要があります
15日間のカレンダーウィンドウを使用して、各暦日の履歴データから計算される百分位数を意味します。つまり、365日がありますので、118日目には、111日目、112日目、... 125日目までの履歴データを使用します。したがって、私のケースでは、40日間のデータがあるため、15日間のウィンドウが表示されます。 40年×15日= 600の合計サンプルサイズを各暦日に生成する。移動ウィンドウは、暦日ではなく、時系列
任意の考えに基づいていてください
感謝を返す必要があります。 #7と8が意味するようなコードを説明してください。 Min tempを85パーセンタイルを使用して含める必要があります。 – Ali
最小温度のテストを追加しました。 85パーセンタイルについて言及するとき、私はあなたが15%の最も寒い日を望んでいると仮定します。したがって、0.15の問題です。また、テストの仕組みを示すおもちゃのデータセットを追加しました。 –
私は本当にあなたの助けに感謝しています。私の質問は明らかではなかった、私の謝罪。 15日間のカレンダーウィンドウを使用して、各カレンダーの履歴データからパーセンタイルを計算することを意味しました。すなわち、365日があるので、8日目には、1日目、2日目、······day15日の履歴データを使用します。したがって、私の場合、私は40年間のデータを持っているので、15日間のウィンドウでは、40年×15日= 600の合計サンプルサイズが各暦日に得られます。したがって、移動するウィンドウは時系列ではなく暦日に基づいています。 – Ali