我刚刚开始使用R并遇到问题。
我希望hclust
包含大量数据的表格。
数据由以下矩阵组成:
> nrow(hell)
[1] 202397
> ncol(hell)
[1] 39840
矩阵由整数组成(大多数为0但当然也有更高的值)。
现在我设法在48核,280gb的RAM linux机器上用read.table()
读取了我的15gb txt文件,但是如果我想计算距离矩阵,它会因为这个错误而失败:
d <- dist(as.matrix(hell))
Error in unlist(x,recursive, use.names):
resulting vector exceeds vector length limit in 'AnswerType'
我已经用Google搜索了但找不到答案(或了解如何处理此问题)。 有机会做我想要的吗? :(
答案 0 :(得分:2)
> 202397^2 > .Machine$integer.max
[1] TRUE
R使用整数来索引其向量和矩阵,矩阵是一种折叠向量。有些任务对于R来说太大了。即使你将该乘积除以2来解释距离矩阵只需要保持n ^ 2/2-n计算的下三角部分的事实,它仍然需要更长的时间矢量比R可以构造。
> 202397^2/2- 202397 > .Machine$integer.max
[1] TRUE