2

我在 C# 中有一些时间序列数据,即测量(双精度)和 DateTime 形式的日期,目前为List<DateTime, double>. 我正在使用通过 NuGet 安装的 RDotNet 包版本 1.5。

如何将我的时间序列放入 R 中,以便使用那里可用的工具创建一些图并执行其他计算。

这是来自 RDotNet 示例的一些代码,我可以使用这些代码创建一个没有 DateTimes 的向量:

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”的相对搜索兴趣。谷歌趋势提供 2004 年以来的每周数据。然后我想以某种方式转换具有(更多)恒定方差的系列,然后估计变化的季节性部分,结果得到季节性部分和剩余(包括趋势)部分。

在 R 中,我直接尝试创建这样的时间序列:

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

因此忽略来自谷歌的日期并假设观察的均匀分布。

一个问题,也许应该是另一个 stackexchange 站点上的另一个问题是如何处理小数频率,因为整周数并不完全适合一年。因此,一年中的周频率会有所不同,尤其是闰年。我应该如何处理这个问题?

然后我尝试了

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

但至少有几个时间序列的结果看起来不正确。

4

0 回答 0