問題タブ [rollapply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
297 参照

r - exp 関数を使用した R の行の Rollapply

df(A)14列と1356行のデータフレームがあります。移動平均のように、12 行ごとに合計を適用するために、この関数があります。

しかし、12 行ごとに、 の乗算を適用する必要がありますexp(n/12)。ここで、n は 0 から 11 までの数値です。合成では、結果は次のようになります。

論理的には 12 行ごとに操作が繰り返されます。これを関数で適用することは可能ですかrollapply、それともループを書く必要がありますforか?

0 投票する
1 に答える
852 参照

r - rollapply のエラー: 添字が範囲外です

最初に私の問題を説明したいと思います: 私がやりたいのは、30 分ごとのデータを持っている間に、24 時間枠での価格の急上昇の数を計算することです。

たとえば、次のような Stackoverflow の投稿をすべて見ました: Rollapply for time series

(もっと関連性のあるものがある場合は、私に知らせてください;))

私は自分のデータをアップロードできないし、おそらくアップロードすべきでもないので、最小限の例を次に示します。ランダム変数をシミュレートし、それを xts オブジェクトに変換し、ユーザー定義関数を使用して「スパイク」を検出します (もちろん、この場合はかなりばかげています。しかし、エラーを示しています)。

関数は想定どおりに機能します。前の 10 個の値を取り、平均を計算します。

次に、ピークを見つけるための独自の関数を定義しました。ピークは極大値 (周囲の m ポイントよりも高い) であり、少なくとも時系列の平均 + h と同じ大きさです。これはにつながります:

そして正常に動作します: 例に戻ります:

ただし、rollapply()関数を使用すると、次のことが起こります。

mパラメータのために、最初のポイントの負のインデックスが int で実行される可能性があるため、エラーが発生する可能性があると最初に考えました。残念ながら、mゼロに設定してもエラーは変わりません。

私もこのエラーを追跡しようとしましたが、ソースが見つかりません。誰か助けてくれませんか?

編集: スパイクの写真:オーストラリアの電力市場のスパイク。find_peaks(20,50) は赤い点がスパイクであると判断し、find_peaks(0,50) はさらに青い点がスパイクであると判断します (したがって、2 番目のパラメーター h が重要です。青い点は明らかに分析したいものではないためです)スパイクについて話すとき)。

0 投票する
1 に答える
667 参照

r - rollapplyr カスタム関数の最適化

次のデータがあります。

外れ値と NA を無視して、変数 v のローリング平均を作成する次のコードを実行しています。コードは機能していますが、パフォーマンスが低下しています。apply などを使用して実行するより効率的な方法があると確信していますが、より高速なバージョンを作成することに失敗しました。より効率的にする方法について誰かが光を当てることができますか?

0 投票する
2 に答える
394 参照

r - ローリング平均機能を高速化/改善するにはどうすればよいですか?

私のデータは 988, 785 obs です。3変数の。私のデータの小さな例を以下に示します。

私の機器のサンプルレートは 100 Hz です。1 ~ 10 秒間のAccelerationfor eachのローリング平均を計算したいと考えています。ID私は以下を使用してこれを実行します。

ただし、1 ~ 10 分間のローリング オーバーを計算する必要があります。上記のコードを使用して、次の行に置き換えることでこれを行うことができます。

ただし、これはデータセットを処理するのに何時間もかかり、Mac 上の RStudio (詳細は後述) がハングします。a)上記のコードを整理するか、b)別のパッケージ/メソッドを使用してより迅速な結果を有効にする方法はありますか?

ありがとうございました。

0 投票する
2 に答える
850 参照

r - R で 1 年間の時間枠で累積積を計算する

一連の 1 期間の返品のローリング プロダクトを計算する必要があるという問題があります。ローリング ウィンドウの長さは可変です。目的は、12 か月のウィンドウを可能な限りカバーする 1 期間のリターンのローリング プロダクトを取得することです。

forループとステートメントを介してブルートフォースを使用して実用的なソリューションを作成できましたifが、エレガントなソリューションがあるかどうか疑問に思っています。および他の同様の機能を試すのに多くの時間を費やしましたがrollapply、解決策を得ることができませんでした。

以下のデータは、問題を示しています。

この例では、行 29 の 12 か月の収益は、行 26 から行 29 までの 1 期間の収益の積として計算されます。反対側では、行 15 の 12 か月のリターンは NA です。これは、13 年 3 月 30 日 (14 年 3 月 30 日から 365 日) が、観測可能な 1 期間のリターンがある時間枠の外にあるためです。

誰かがこの問題にアプローチする方法を提案できれば幸いです。

明確にするために、提供されたデータがあまり意味をなさない場合、これは私が説明のために作成した大規模なデータベースの縮小バージョンであるためです.