我對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
做任何事情。
你在談論時代系列..你舉個基於虹膜的例子嗎?!!你聚合使用差異?理由是什麼?它會更好地使用時間序列軟件包(動物園,xts,..)之一!真的我不明白你想要做什麼(我至少讀了3次你的問題) – agstudy 2013-03-01 23:21:28
@agstudy,我*想*這個問題與'aggregate'的行爲有點關係,如果你給它一個像'summary'或'fivenum'或其他可以返回多個列的函數。在這種情況下,結果是*看起來像多列data.frame,但實際上是一個'matrix'作爲'data.frame'中的一列。因此,一個'do.call(data.frame,...)'應該能夠「平坦」輸出。 – A5C1D2H2I1M1N2O1R2T1 2013-03-02 09:54:10
@AnandaMahto謝謝。我明白你的觀點。 – agstudy 2013-03-02 19:39:08