2012-05-21 84 views
27

如何重新排列n維陣列的尺寸。例如,如果我有一個銷售數據的三維數組,第一個維度表示日期,第二個維度是Store,第三個維度是Department。如何轉換數組,以便第一個維度是Store,第二個維度是Department,第三個是Date。這只是一個例子。我希望有一個通用的解決方案。如何更改陣列尺寸的順序

回答

46

這樣做的功能是aperm,從基礎包。它是對多維數組的轉置t()函數的推廣。對於你的例子,你可以這樣稱呼它:

new.data <- aperm(old.data, c(2,3,1)) 
+0

完美 - 謝謝。 – ruser