我有一些vegdist
函数的问题。我想用jaccard来计算距离矩阵。我有二进制数据。vegan :: vegdist:双倍错误(N *(N-1)/ 2):指定的向量大小过大
问题是我有一个138037行(站点)和89列(物种)的矩阵。 我的脚本是:
library("vegan")
memory.limit(size = 100000) # it gives 1 Tera from HDD in case ram memory is over
DF=as.data.frame(MODELOS)
DF=na.omit(DF)
DISTAN=vegdist(DF[,2:ncol(DF)],"jaccard")
或者更可重复:
nsites <- 138037
nspp <- 89
DF <- matrix(0,nrow=nsites,ncol=nspp)
DISTAN=vegdist(DF,"jaccard")
几乎立即就产生错误:
Error in double(N * (N - 1)/2) : vector size specified is too large
我认为这是一个内存错误,但我知道鸵鸟政策为什么如果我有一台带有32GB内存和1 Tera硬盘的电脑。
我也尝试从包代理做DIST矩阵功能dist
:
library(proxy)
vector=dist(DF, method = "Jaccard")
它开始运行,但是当它到达10 GB的RAM,一个窗口公布的R犯了一个错误,它将关闭,因此它关闭并开始一个新的部分。
我真的不知道发生了什么事,也不知道如何解决这个问题,任何人都可以帮助我吗?
请编辑您的问题和标题为英文,本网站上的所有内容均应使用英文书写(包括错误消息) – thaJeztah 2013-02-08 23:13:24
有什么特别的理由说明这是被标记为PHP的吗? – 2013-02-08 23:16:08
@ user2055974您可以设置'Sys.setenv(LANG =“en”)'以重现英文错误信息。请参见[本文](http://stackoverflow.com/questions/13575180/how-to-change-the-language-of-errors-in-r) – 2013-02-08 23:16:20