2

私はC#でいくつかの時系列データを持っていList<DateTime, double>ます. NuGet 経由でインストールされた RDotNet パッケージ バージョン 1.5 を使用しています。

R で利用可能なツールを使用していくつかのプロットを作成し、他の計算を実行するために、時系列を R に取り込むにはどうすればよいですか。

以下は、DateTimes を使用せずにベクトルを作成できる RDotNet の例のコードです。

using RDotNet;
using System;
using System.IO;

namespace RTimeSeries
{
  class RTimeSeriesTest
  {
    public static void createVector(double[] doublearray)
    {
      var envPath = Environment.GetEnvironmentVariable("PATH");
      var rBinPath = @"C:\Program Files\R\R-3.0.1\bin\i386";
      Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);
      using (REngine engine = REngine.CreateInstance("RDotNet"))
      {
        engine.Initialize();
        var myvector = engine.CreateNumericVector(doublearray);
        engine.SetSymbol("myvector", myvector);
      }
    }

    public static void test()
    {
      createVector(new[] { 1, 2, 3, 4, 5.0, 6, 7, 8, 9, 10 });
    }
  }
}

C# 時系列を R 時系列に変換する最良の方法は何ですか? tsできればオブジェ希望です。

--

Windows 64 ビットで R バージョン 3.0.1 を使用しています。これをバイナリーの Windows インストーラーからインストールしました。

--

米国での「NFL」に対する相対的な検索インタレストのように、「nfl」に関するデータなど、Google トレンドからデータを送信したいと考えています。Google トレンドは 2004 年からの毎週のデータを提供します。次に、何らかの方法でシリーズを (より) 一定の分散に変換し、変動の季節部分を推定して、その結果、季節部分と残り (トレンドを含む) 部分を取得したいと考えています。

Rで直接、次のような時系列を作成しようとしました:

nfl.ts<-ts(data=searches$Searches, frequency=52.1775, start=c(2004,1))

したがって、Google からの日付を無視し、観察結果が均一に分布していると仮定します。

おそらく別のstackexchangeサイトで別の質問になるはずの1つの問題は、整数の週数が1年に完全に収まらないため、分数の頻度を処理する方法です。そのため、特にうるう年の場合、1 年の週の頻度は少し異なります。この問題をどのように処理すればよいですか?

私はそれから試しました

plot(stl(nfl.ts,s.window="periodic"))

しかし、少なくともいくつかの時系列では結果が正しくないように見えます。

4

0 に答える 0