今天 manipulatr 邮件列表中出现了这个问题。
问题在于按行应用函数需要存储整个矩阵(而不仅仅是下三角部分)。因此,对于大型矩阵来说,它使用了太多的内存。对于维度约为10000的矩阵,在我的计算机上运行失败。
有任何想法吗?
http://groups.google.com/group/manipulatr/browse_thread/thread/fbab76945f7cba3f
我将进行重新表述。
给定一个距离矩阵(使用dist
计算),对距离矩阵的行应用函数。
代码:
library(plyr)
N <- 100
a <- data.frame(b=1:N,c=runif(N))
d <- dist(a,diag=T,upper=T)
sumd <- adply(as.matrix(d),1,sum)
问题在于按行应用函数需要存储整个矩阵(而不仅仅是下三角部分)。因此,对于大型矩阵来说,它使用了太多的内存。对于维度约为10000的矩阵,在我的计算机上运行失败。
有任何想法吗?