我有一个距离/差异矩阵(3万行30K列),该矩阵是循环计算并存储在ROM中的。
我想对矩阵进行聚类。我将其导入并聚类如下:
Mydata<-read.csv("Mydata.csv")
Mydata<-as.dist(Mydata)
Results<-hclust(Mydata)
但是当我将矩阵转换为dist
对象时,出现RAM限制错误。我该如何处理?我可以在循环/分块中运行hclust
算法吗?我的意思是我将距离矩阵分成多个块并循环运行?
答案 0 :(得分:0)
您可以尝试以下操作:
Mydata<-read.csv("Mydata.csv")
Mydata<-as.matrix(Mydata)
Mydata<-as.dist(Mydata)
Results<-hclust(Mydata)
阅读以下内容以跟踪您的会话中发生的情况:http://adv-r.had.co.nz/memory.html
这通常可能会有所帮助: https://cran.r-project.org/web/packages/fastcluster/ 还有这个问题:hclust() in R on large datasets
这也取决于您的操作系统,但是也许您可以更改RAM限制(或仅在具有更多RAM的其他人的计算机上运行此代码,使用saveRDS存储对象,然后使用readRDS在您自己的计算机中读取该对象)。 / p>