2011-11-18 57 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可能需要全部他们可以得到的速度,我将运行一些基准测试,但我不能在我的笔记本电脑上轻松创建这样一个大对象。 –