問題タブ [xts]
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.
r - quantmod 'to.weekly' 関数を使用して日次データを集計すると、金曜日ではなく月曜日で終わる週次データが作成されます
quantmod の「to.weekly」関数を使用して、毎日の株価データ (終値のみ) を毎週の株価データに集計しようとしています。xts オブジェクトfoo
は、2011 年 1 月 3 日月曜日から 2011 年 9 月 20 日月曜日までの株式の毎日の株価データを保持します。この毎日のデータを集計するために、以下を使用しました。
tmp <- to.weekly(foo)
上記のアプローチはtmp
、quantmod docs に従って、一連の毎週の OHLC データ ポイントを保持するという点で成功しています。問題は、シリーズが 2011 年 1 月 3 日の月曜日に始まり、その後の各週も月曜日に始まることです。たとえば、1 月 10 日の月曜日、1 月 17 日の月曜日などです。毎週のシリーズが 1 月 7 日金曜日に開始し、9 月 16 日金曜日に終了するように、週がデフォルトで金曜日に終了することを期待していました。
データの開始と終了を調整し、「endof」または「startof」を indexAt パラメータと一緒に使用して実験しましたが、金曜日で終わる週を返すことができません。
いただいた洞察に感謝します。(申し訳ありませんが、dput ファイルを添付する方法が見つからなかったため、データを以下に示します)
フー:
tmp:
r - タイムスタンプ付きの行データを変換するときのパフォーマンスの問題
1 分間の時間枠で発生するデータの間隔を表す data.frame を取る関数を作成しました。この関数の目的は、これらの 1 分間隔を取り、より長い間隔に変換することです。たとえば、1 分が 5 分、60 分などになります。データ セット自体には、データにギャップが生じる可能性があります。つまり、時間のジャンプがあるため、これらの不良データの発生に対応する必要があります。私は動作するように見える次のコードを書きましたが、大規模なデータ セットでのパフォーマンスはまったくひどいものです。
どうすればこれをスピードアップできるかについて、誰かがいくつかの提案を提供してくれることを願っています。下記参照。
編集:
以下は私のデータの行です。各行は 1 分間隔を表します。これを、これらの 1 分間隔の集計である任意のバケット、つまり 5 分、15 分、60 分、240 分などに変換しようとしています。
r - 任意の時間枠での値の出現を集計 (カウント)
この時点で発生したタイムスタンプと特定のイベント タイプを含む CSV ファイルがあります。私が欲しいのは、特定のイベントタイプの発生回数を 6 分間隔でカウントすることです。
入力データは次のようになります。
次のコードを使用して、データを読み込んで修復します。
修復後、データは次のようになります。
xts と Zoo のサンプルをたくさん読んだのですが、なんとなく腑に落ちません。出力データは次のようになります。
Zoo の集計関数は有望に見えます。次のコード スニペットを見つけました。
今、これを自分のユースケースにどのように適用できるか疑問に思っています。
私が試したように素朴です:
私は R にあまり自信がないことを認めなければなりませんが、試してみます。:-)
私はちょっと迷っています。誰かが私を正しい方向に向けることができますか?
どうもありがとう!乾杯、アレックス。
これは、私のデータの小さなサブセットに対する dput の出力です。データ自体は約 8000 万行です。
r - xtsを使用した%*%のイディオム
%*%
演算子を使用して時系列を表すベクトルに重みのベクトルを適用するコードを使用しています。時系列にxtsを使用したいのですが、%*%
オペレーターはxtsインデックス値を無視する必要があることを理解していません。
coredata()
系列の値をベクトルとして引き出し、値を操作して、それらをマージして戻すことができることはわかっていますが、使用すべき優れたネイティブxts関数があるかどうか疑問に思いました。
編集:私が行動に見ている違いを説明するコードサンプル。
r - `xts` オブジェクトのリストの範囲を計算します
では、オブジェクトR
のリストがあり、リストxts
内のすべてのアイテムの時間インデックスの範囲を計算したいと考えています。私はそれを行うスムーズな方法を見つけることができません.オブジェクトのクラスを失い続け、生の数値ベクトルになります.
例(私のリストは と呼ばstates
れ、 GMT によってインデックス化されていますPOSIXct
):
それらを に戻すのは面倒POSIXct
です。私は次のようにしています:
アドバイスよろしくお願いします!
r - 不規則な時系列に対する定期的な分析
タイム ウィンドウ処理を適用したい不規則な時系列 ( )xts
があります。R
たとえば、次のような時系列が与えられた場合、 から開始して、離散した 3 時間のウィンドウごとに観測値がいくつあるかなどを計算したいと思います2009-09-22 00:00:00
。
どうやらそれを使用したり実行しperiod.apply()
たりsplit()
することはできません。これは、観測のない期間を省略し、開始時間を指定できないためです。
単純なカウントの問題に対する私の望ましい出力 (もちろん、私の実際のタスクは各セグメントでより複雑です!) 一度に 3 日を集計すると、次のようになります。
ご指導ありがとうございます。
r - R data.frameを1つずつ時系列に変換する方法
私は一連のdata.frameを持っています
しかし、これら3つを次のように時系列に変換したい
私の質問は、行名 (1,2,3) と名前 qqq qqq のみを変更するたびに、それらを 1 つのコメントにまとめてもよろしいですか? いくつかの機能を実装したいですか?
r - Rollapply&xts。ウィンドウに最大値の時間を出力できますか?
私はquantmodを介していくつかのyahoo財務データを研究しています。
データのローリングウィンドウでの最大価格と最小価格だけでなく、それらの高値と安値の正確なタイムスタンプもどのように決定しますか?rollapplyでwhich.max()を試しましたが、これはローリングウィンドウ自体の値のシーケンスのみを報告し、タイムスタンプを保持する行の.index()は報告しません。
誰かが解決策を提案できますか?
再現可能な例を以下に示します。いくつかのサンプル出力が必要です...
生成したい出力のタイプは次のようになります。
理想的には、私が採用するアプローチは、一般的な重複価格の事実に対応する必要があります。この場合、ウィンドウに最大値の最初と最小値の最後を取得するように命令します。
r - xts マージの奇妙な動作
インデックスがすべて「Date」オブジェクトである3つのxtsオブジェクトがあります。
インデックスが同じであることを確認するには:
今、私はこの奇妙な動作を見ています:
次のマージは正常に機能しますが、
ここで何が起こっているのかわかりません。何か案が?
アップデート:
実際、問題は、インデックスが同一ではないことです ( で検証.index(a) == .index(b)
)。数値に変換してから xts を再作成し、日付を再計算しasDate
て問題を修正しました。
このオブジェクトはto.daily
、xts のメソッドから作成されました。
r - 非 OHLC での XTS 周期性の変換
xts または data.frame オブジェクトを使用しており、1 分間隔のデータを 15 分、1 時間ごとなどにロールアップする簡単な手段が必要です。
メソッドがあることは認識していto.period
ますが、私の問題は、列が非 OHLC 列であるため、to.period を呼び出すとドロップされることです。
私のデータには、POSIXct、SomeVar、AnotherVar の 3 つの列があります。
このデータを変換する機能が必要であり、その間にデータ列を合計するか、最大値を取得します。仕組みと非常に似てto.period
いますが、列の名前が異なります。また、私の列データは数値ではなく因子である場合があるため、(計算時に) 変換も処理できれば理想的です。