2

多くのステーションの 30 年間のデータを含む毎日の時系列があります。biwavelet次のコードを使用して、データの周期性をテストするためにRのパッケージを使用しています

di <- data.frame(d1$date, d1$t_min)
wt.t1 = wt(di)
par(oma = c(0, 0, 0, 1), mar = c(5, 4, 4, 5) + 0.1)
plot(wt.t1, plot.cb = TRUE, plot.phase = FALSE)

コードの実行時にこのエラーが発生しました

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
0 (non-NA) cases

私が使用しているデータセットの中には、毎年の毎日の値が欠けているものがあります。私はかなり新しいRとプログラミングです。biwaveletパッケージを使用すると、値が欠落しているとこのようなエラーが発生するようです? 私の質問は、R でこの問題を解決する方法はありますか?

4

2 に答える 2

0

NA を 0 に置き換えてみてください。

data[is.na(data)] <- 0
于 2016-04-27T15:45:30.673 に答える
0

私は同じ問題に遭遇しました。私はウェーブレットや信号処理の専門家ではないので、技術不足で申し訳ありません。

wt不足しているデータ ( ) がある場合は機能しませんNA。s を使用して行を完全に取り除こうとするとNA、提供したデータが「定期的にサンプリングされた間隔」で取得されていないと不平を言うでしょう。

欠落しているデータが非常にまれな場合は、データセットを「チャンク」に分割して、連続した規則的な間隔のデータが存在するようにし、各「チャンク」に対して個別に wt を実行できます。ただし、データセットをより小さなセットに分割することにより、wt は低周波数を見つける能力を失います。関心のある周波数範囲が十分に高く、連続データの「チャンク」にいくつかの期間がある場合に適しています。

別の方法は、ギャップを埋めるために何らかの補間を試みることです。これも、データ、ギャップの範囲などによって異なります。補間した場所の近くで奇妙な結果が得られることは確かですが、少なくともデータを「全体として」保持し、より低い周波数を検索する機能を保持します。

于 2015-06-24T23:32:35.730 に答える