2011-11-18 58 views
1

我願做PCA上的數據幀是在長型:PCA R中長型

時間1 ID1 DATA11

時間1 ID2數據12

時間2 ID1 data21

等等

有沒有一種簡單的方法來做到這一點或是標準的方式到reshape它然後做princomp。我的數據集非常大,大約有40,000次和4,000個ID。

回答

3

對於這樣一個簡單的整形,我認爲你需要的是

m <- matrix(mydata[,3],nrow=ntimes,byrow=TRUE) 
princomp(m) 

這應該給你一個ntimes通過nIDs矩陣一起玩。它會(可能很多)比reshape更快。

+0

偉大的建議 - 謝謝!我會給你一個鏡頭,但似乎它會工作。 – Alex

+0

更快,但也更危險。 – hadley

+0

夠公平的。雖然(print(object.size(seq(1.6e8)),units =「Mb」)'[[或者我可以將4個字節乘以1.6e8!],所得到的矩陣將是610 Mb!] OP可能需要全部他們可以得到的速度,我將運行一些基準測試,但我不能在我的筆記本電腦上輕鬆創建這樣一個大對象。 –