【发布时间】:2013-09-04 06:56:37
【问题描述】:
我正在对一个相当小的矩阵(5000 行 x 200 列)进行聚类并制作热图,但我发现使用 R 中的标准 heatmap 类函数需要很长时间。示例:
data <- replicate(5000, rnorm(200))
aheatmap(data, dist="correlation")
(这是使用 NMF 包中的 aheatmap:http://cran.r-project.org/web/packages/NMF/index.html)
如果使用euclidean 而不是correlation 距离,结果似乎要快一些。有没有办法加快这个速度?
为了澄清我只对聚集列而不是行感兴趣,所以我经常传递 aheatmap 参数 Rowv=FALSE
【问题讨论】:
-
如果您分析
aheatmap,您会发现大部分时间都花在grid.Call.graphics和dist。我会考虑在绘图之前聚合数据的方法。输出看起来不需要热图中的这种高分辨率。 -
@Roland:我认为 dist 需要计算 200 选择 2 次来计算所有对...不知道如何避免这种情况,但我不明白为什么 R 中计算相关性如此缓慢
标签: r optimization plot statistics cluster-analysis