6

大規模なデータセット (つまり 50 mil + obs) を使用して R でパネル データを操作するために人々が使用するものを確認したいと思います。このdata.tableパッケージは、キーがあり、非常に高速であるという点で便利です。このxtsパッケージは、あらゆる種類の時系列処理を行うための機能を備えているため便利です。したがって、次の 2 つの適切なオプションがあるようです。

  1. data.tableその上で動作するカスタム時系列関数を作成します
  2. xtsオブジェクトのリストを持ち、lapply何かをしたいときはいつでもそのリストで実行します。data.frame最終的には、回帰などを行うためにこれを にマージする必要があります。

このパッケージは知っていplmますが、上記の 2 つのオプションほどデータ管理に役立つとは思いませんでした。皆さんは何を使っていますか?いつ何が最も効果的かについてのアイデアはありますか?

シナリオを提案してみましょう。N>>0 かつ T>>0 である T 期間の N 社を想像してください。data.table各企業を 1 期間遅らせたい場合、超高速になります。たとえば、次のようになります。

x <- data.table(id=1:10, dte=rep(seq(from=as.Date("2012-01-01"), to=as.Date("2012-01-10"), by="day"), each=10), val=1:100, key=c("id", "dte"))
x[,lag_val:=c(NA, head(val, -1)),by=id]

これを行う別の方法は次のとおりです。

y <- lapply(ids, function(i) {xts(x[id==i, val], order.by=x[id == i, dte])})
y <- lapply(y, function(obj) { cbind(obj, lag(obj, 1)) })

前者の利点は、ビッグデータでの速度です。後者の利点は、 のようなことを実行したりperiod.apply、 の他の機能を使用したりできることですxtsxts表現を速くするコツはありますか? たぶん、2つの組み合わせですか?オブジェクトとの間の変換にxtsはコストがかかるようです。

4

0 に答える 0