問題タブ [zoo]
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 - R: 2 つの不規則な時系列をマージする
2 つの多変量時系列 x と y があり、どちらもほぼ同じ時間範囲をカバーしています (一方は他方より 2 年前に開始されますが、同じ日付で終了します)。どちらのシリーズにも、日付列の横にある空の列の形で観測値が欠落しています。また、シリーズの 1 つに、他のシリーズには見られない複数の日付があるという意味でも、またその逆もあります。
重複する日付なしで、x OR y で見つかったすべての日付をリストする列を持つデータ フレーム (または同様のもの) を作成したいと思います。各日付 (行) について、x の観測値を y の観測値の隣に水平に積み上げ、欠落しているセルを NA で埋めたいと思います。例:
私が試したこと:zooパッケージでmerge.zooメソッドを試しましたが、これは2つのシリーズを日付とともに(数字として、たとえば「1987-01-02」が表示されているように)並べただけのようです6210 として) 2 つの別々の列に表示される各シリーズから。
私は何時間も座ってほとんどどこにも行かなかったので、すべての助けに感謝します.
編集:Soumendraからの提案に従って、以下に含まれるいくつかのコード
編集:(zooパッケージを使用して)解決された問題
ご協力ありがとうございました。
r - ファイル名を使用して列に名前を付ける
2 つの列を持つ何百もの csv ファイル (R の動物園オブジェクト) があります。
"Index","pp"
1951-01-01,22.9
1951-01-02,4.3
1951-01-03,4.6
2 列目に各ファイルの名前を表示します。たとえば、ファイル名が の場合02O_zoo.csv
、2 列目を「pp」ではなく「02O」にしたいと考えています。これを自動的に行う方法はありますか?
ありがとう
r - 複数の列を持つ動物園オブジェクトで「apply.monthly」を使用する方法
次のような毎日のデータと 77 列を含む pp という動物園オブジェクトがあります。
各列に使用したいapply.monthly
ので、最終的には 77 列のままになりますが、日次データではなく月次データが含まれます。試してみ
apply.monthly(pp, FUN=sum)
ましたが、結果は1列だけのzooオブジェクトです(すべての列を追加していると思います)。
私もループを試しました:
for (i in 1:77)
{
mensal<-apply.monthly(pp[,i], FUN=sum)
}
ただし、結果は 1 列 (77 列目) になります。試行錯誤でループを機能させることができるかもしれませんが、計算には時間がかかります(17897行と77列があります)。ループを使用せずにこれを行う簡単な方法があると思います...どのように、助けてください。ありがとう!
r - na.locfですが、後続のNAは実行しないでください
次の時系列があります
まっすぐなna.locfは私にこれを与えます:
どうすればこれに到達できますか?
最後の欠落していない値を除いて、最後の観測を繰り越したくありません。つまり、末尾のNAは置き換えられません。どうもありがとうございました!
r - xtsプロットにポイントを追加する
xtsオブジェクトを使用してプロットにポイント、凡例、テキストを追加すると、この質問に対する答えが得られると思いましたが、明らかにそうではありません...
これは教科書から直接出てきたようです。?plot.zoo
ただし、例は含まれていませんpoint()
。
r - 動物園で何ヶ月も働いています
月の変化をテストするために使用できる変数を使用して、zooオブジェクトを拡張したいと思います。これを行うにはもっと一般的な方法があると確信しています。提案は素晴らしいと思いますが、この単純なアプローチが失敗する理由を理解したいと思います。私がここで欠けているものを理解したなら、私は気分が良くなるでしょう;-)
たとえば、動物園のオブジェクトの場合
as.yearmon()を使用して年/月変数を追加するのは簡単なようです。私がデータフレームにいる場合、これは細かい文字変数を生成しますが、動物園では、as.numeric()でラップするのを忘れると悲劇が起こります
これは見栄えがよく、データ要素をうまく比較できます
(tz $ x [6]!= tz $ y [6])
2008-03-09
FALSE
しかし、年/月の変数を比較すると、なぜこの結果が得られるのですか?
そして、なぜ、yearmonまたはsidentity()を使用したデータ項目のテストがこのように失敗するのですか?(両方とも真である必要があります)
動物園でインデックスクラスを作成するyearmon()を使用して、火遊びをしているだけですか?Dirk Eddelbuettelの「日付を月番号に変える」のようなものに切り替える必要がありますか? 2つの日付の間の月数
r - 'xts'パッケージの'to.weekly'関数を使用した間違った週末の日付
私は本当に奇妙な問題を抱えています...私はto.weekly
andto.period
関数を使用して毎日のxts
オブジェクトを毎週のデータに変換しています。ほとんどの場合、週末の日付は金曜日として取得されます(day.of.week
関数は5を返します)(たとえば"2010-01-08"
、"2011-02-11"
)が、金曜日以外のものを取得する場合があります(土曜日/日曜日/木曜日など)。
私は試しましたがto.weekly
、to.period(x, period = 'weeks')
どちらも同じ問題を返します。
なぜこうなった?これに対する回避策はありますか?
ありがとう!!
[編集:以下の例]
これにより、金曜日以外の日付が返されます。time(to.weekly(test.xts))[dayofweek(time(to.weekly(test.xts))) != 5]
r - 任意の時間枠での値の出現を集計 (カウント)
この時点で発生したタイムスタンプと特定のイベント タイプを含む CSV ファイルがあります。私が欲しいのは、特定のイベントタイプの発生回数を 6 分間隔でカウントすることです。
入力データは次のようになります。
次のコードを使用して、データを読み込んで修復します。
修復後、データは次のようになります。
xts と Zoo のサンプルをたくさん読んだのですが、なんとなく腑に落ちません。出力データは次のようになります。
Zoo の集計関数は有望に見えます。次のコード スニペットを見つけました。
今、これを自分のユースケースにどのように適用できるか疑問に思っています。
私が試したように素朴です:
私は R にあまり自信がないことを認めなければなりませんが、試してみます。:-)
私はちょっと迷っています。誰かが私を正しい方向に向けることができますか?
どうもありがとう!乾杯、アレックス。
これは、私のデータの小さなサブセットに対する dput の出力です。データ自体は約 8000 万行です。
list - llply または lapply に関する質問 - リスト内の data.frames に関数を適用する
親愛なる R ユーザー コミュニティへ
次のように、リストに多くの data.frames があります (便宜上、21 のリストの 1 つの data.frame のみを示します)。
リスト内の各 data.frame を個別に処理すると、次のように、temp と date から Zoo オブジェクトを作成できます。
Zoo オブジェクトは次のようになります。
llply または apply (または同様のもの) を使用して、リスト全体を一度に操作するにはどうすればよいですか?
出力は、data.frames の新しいリスト、または一連の独立した data.frames (上記の Zoo の例のようにそれぞれに名前が付けられています) に入る必要があります。日付列は、通常の時系列 (日) ですが、欠落している日付が含まれていることに注意してください (既存の日付の一時の NA に加えて)。欠落している日付は、zoo 関数によって埋められます。したがって、zoo オブジェクトを含む出力 data.frame は、元のものよりも長くなります。
よろしくお願いします。
r - Rollapply&xts。ウィンドウに最大値の時間を出力できますか?
私はquantmodを介していくつかのyahoo財務データを研究しています。
データのローリングウィンドウでの最大価格と最小価格だけでなく、それらの高値と安値の正確なタイムスタンプもどのように決定しますか?rollapplyでwhich.max()を試しましたが、これはローリングウィンドウ自体の値のシーケンスのみを報告し、タイムスタンプを保持する行の.index()は報告しません。
誰かが解決策を提案できますか?
再現可能な例を以下に示します。いくつかのサンプル出力が必要です...
生成したい出力のタイプは次のようになります。
理想的には、私が採用するアプローチは、一般的な重複価格の事実に対応する必要があります。この場合、ウィンドウに最大値の最初と最小値の最後を取得するように命令します。