rollapplyまたはrollapplyrを使用して、時系列データにmodwt関数を適用したいと考えています。rollapplyを使用してリストのリストに出力する
私はrollapply/rの仕組みに精通していますが、出力を設定してrollapplyを使用して結果を正しく保存できるように助けが必要です。
wavelimパッケージのmodwt関数は、私の特定の問題J = 4のために時系列をとり、それをJレベルに分解します。これは、私が5つのリストに格納された1つの時系列から4セットの係数を持つことを意味します。このリストのうち、私はd1、d2、d3にのみ関係しています& d4。
私は長さ200の全長の時系列にmodwt機能を適用しているが、私は小さなローリング・ウィンドウにそれを適用したい上記の例では
> str(ar1.modwt)
List of 5
$ d1: num [1:200] -0.223 -0.12 0.438 -0.275 0.21 ...
$ d2: num [1:200] 0.1848 -0.4699 -1.183 -0.9698 -0.0937 ...
$ d3: num [1:200] 0.5912 0.6997 0.5416 0.0742 -0.4989 ...
$ d4: num [1:200] 1.78 1.86 1.85 1.78 1.65 ...
$ s4: num [1:200] 4.64 4.42 4.19 3.94 3.71 ...
- attr(*, "class")= chr "modwt"
- attr(*, "wavelet")= chr "la8"
- attr(*, "boundary")= chr "periodic"
を次のようにmodwt関数の出力が見えます30のrollapplyを使用しています。
Iはすでに以下を試みたが、出力が大きい行列であり、Iは、簡単、D2がD1と属する値は識別できない、D3又はD4
roller <- rollapplyr(ar1, 30,FUN=modwt,wf="la8",n.levels=4,boundary="periodic")
本の出力が有する大きな行列であります次の構造:省略行の
> str(roller)
List of 855
$ : num [1:30] 0.117 -0.138 0.199 -1.267 1.872 ...
$ : num [1:30] -0.171 0.453 -0.504 -0.189 0.849 ...
$ : num [1:30] 0.438 -0.3868 0.1618 -0.0973 -0.0247 ...
$ : num [1:30] -0.418 0.407 0.639 -2.013 1.349 ...
...たくさん...
$ : num [1:30] 0.307 -0.658 -0.105 1.128 -0.978 ...
[list output truncated]
- attr(*, "dim")= int [1:2] 171 5
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:5] "d1" "d2" "d3" "d4" ...
H私はスケールをd1、d2、d3、d4のそれぞれに対してリスト内の(200-30)+1リストを格納するように変数を設定できますか?再現性のある例えば
は以下を使用してください:
library(waveslim)
data(ar1)
ar1.modwt <- modwt(ar1, "la8", 4)
この質問をこの回答に基づいて作成された新しい質問で参照してもよろしいですか?私はこれについて私の深さから抜け出して、私が必要となる場所に到達する唯一の方法は、質問をより扱いやすい部分に分割することです。 – TheGoat
1つの質問が関連しているときに別の質問を参照するのは普通ですので、これは確かに問題ありません。 –
この質問で助けてくれてありがとう、私はあなたと同じくらいRに堪能だったらいいと思う。私は別の質問[ここ](https://stackoverflow.com/questions/45673142/wavelet-correlation-using-rolling-window-in-r)を作成しました。そして、私は本当にそれについていくつかの助けが必要なので、私は300賞金のためのポイント。私はあなたがそれを見ているかどうかはわかりませんが、もしできれば、私はとても感謝しています。賞金は23時間後に始まります。 – TheGoat