首页 > 解决方案 > 'Calloc' 无法使用 kernelUD 函数分配内存

问题描述

我知道,不久前有人问过类似的问题(“'Calloc'could not allocate memory” in 64-bit R),我试图在那里问,但我被删除了......虽然正如我在我的问题中所说,我确实尝试了他们的解决方案(更新插件),但它对我不起作用。Sooo,让我再试一次:)

当我尝试使用包中的kernelUD()函数时adehabitatHR,根据h参数值,我得到了那个错误。它使用h="href"参数,但不使用h="LSCV"(不同的平滑参数)

require(adehabitatHR)
BCLoc <- puechabonsp$relocs[, 1] #data comes with adehabitatHR
BC.href <- kernelUD(BCLoc, h="href") #works :)
BC.LSCV <- kernelUD(BCLoc, h="LSCV") #gets error :(
Error in .kernelUDs(SpatialPoints(x, proj4string = CRS(as.character(pfs1))),  : 
  'Calloc' could not allocate memory (18446744071710095360 of 8 bytes)

有任何想法吗?

标签: r

解决方案


我有完全相同的问题。据我所知,如果迁移次数过多,LSCV 似乎表现不佳(或干脆惨败)(Hemson 等人 2005 Journal of Animal Ecology 2005. 74, 455–463)。我的很大,当我尝试使用 hLSCV 运行 KDE 时,R 会话在开始时中止,尽管所有这些都与 ref 运行良好。

当我减少样本时,我得到了您询问的错误。进一步减少它,我开始得到一个新的错误:

In .kernelUDs(SpatialPoints(x, proj4string = CRS(as.character(pfs1))),  :
  The algorithm did not converge within the specified range of hlim:
  try to increase it

不管我把他设得多高,它都没有收敛。一个可能的解决方案是使用“抖动”功能向重定位添加噪音,如下所述:https ://ecosystems.psu.edu/research/labs/walter-lab/manual/home-range-estimation/link-to -pdf和这里https://animov.faunalia.narkive.com/NnG9nLKl/again-kernelud-and-lscv

不过,它对我不起作用,但我希望这对任何人都有帮助


推荐阅读