私はRをかなり新しくしています。aggregate
を使用して、データフレーム、対象ごと、およびデータセットの各メトリックについて時系列的なシェイピングを実行しようとしています。これはきれいに動作しますが、結果は非常に使いやすい形式ではありません。私は結果を元のデータフレームと同じフォーマットに戻すことができるようにしたいと思います。R集合関数の結果を平坦化/非正規化する
:
# Split into two data frames, one for metrics, the other for grouping
iris_species = subset(iris, select=Species)
iris_metrics = subset(iris, select=-Species)
# Compute diff for each metric with respect to its species
iris_diff = aggregate(iris_metrics, iris_species, diff)
私はちょうど私が時系列を形作る機能を持っていることを示すためにdiff
を使用していますので、私はおそらく異なる長さの時系列を取得結果、間違いなく単一の集計値(例えば平均値)ではない。
私は結果を変換したいと思います。これは、リストに値を持つセルが元の「フラット」なデータフレームになっているようです。
私はほとんどaggregate
の結果でこれを管理する方法について興味がありますが、plyr
またはreshape
のすべてを行うソリューションでは大丈夫でしょう。
あなたは時間シリーズについて話しています。あなたは虹彩に基づいた例を挙げていますか?あなたはdiffを使って集計しますか?理由は何ですか?それは時系列パッケージ(動物園、xts、..)の1つを使う方が良いでしょう!実際に私はあなたが何をしたいのか理解していません。(私はあなたの質問を少なくとも3回読んでいます) – agstudy
@agstudy、私は思っています*質問はあなたがそれを与えると 'aggregate' 'summary'や' fivenum'などの関数や、複数の列を返す関数があります。そのような場合、結果は*複数の 'data.frame'のように見えますが、実際には' data.frame'の列として 'matrix'です。したがって、 'do.call(data.frame、...)'は、出力を "平坦化"するためのトリックを行う必要があります。 – A5C1D2H2I1M1N2O1R2T1
@AnandaMahtoありがとうございました。私はあなたのポイントを得る。 – agstudy