使用包 'move' 的 'distance' 函数时出错
Error when using the 'distance' function of the package 'move'
移动包重复出现错误,无法使用 distance
函数。当我第一次加载包时,我收到警告
“为‘距离’找到多个方法表”。
稍后,当遵循 move vignette 时,我 运行 代码行:
distance(leroy)[1:5]
并给出错误:
“(函数(类、fdef、mtable)中的错误:
无法为签名““移动”、“缺失””找到函数“距离”的继承方法。
在将此代码应用于我自己的数据集时,我收到了同样的错误。我认为这是因为 R 为 'distance' 使用了不同的包,但是当我通过 move::distance(leroy)
甚至 terra::distance(leroy)
直接调用它时,我仍然收到相同的错误。我已经尝试重新安装软件包以及移动所需的 'terra' 和 'raster' 软件包;我的笔记本电脑 (Mac)、RStudio 和所有其他软件包都已更新。 Gdal 与 geos 和 proj 一起更新。我有 运行 另一台笔记本电脑上的代码,以及 rdrr.io 上的代码,并且 运行 完美无缺,所以我假设问题出在我的笔记本电脑上。 ?move::distance()
向我展示了 function description,其中 x 是移动、移动堆栈或移动突发对象。从Movebank下载的数据集'leroy'和我自己的数据集都是移动对象。还有其他人 运行 遇到类似问题或有任何故障排除建议吗?
已解决!
移动包尚未更新以说明栅格现在需要 terra。我从 CRAN (move_4.0.6.tar.gz) 和 运行 下载了 move 包源代码,在将 move 包加载到 R 后,他们的距离函数代码。代码他们的距离方法是:
#setGeneric("distance")#, function(x){standardGeneric("distance")})
setMethod("distance",
signature=c(x=".MoveTrackSingle",y="missing"),
definition=function(x){
Dists<-raster::pointDistance(x[-sum(n.locs(x)),], x[-1,], longlat=isLonLat(x))
return(Dists)
})
setMethod("distance",
signature=c(".MoveTrackStack",y="missing"),
definition=function(x){
lst <- lapply(split(x), distance)
return(lst)
})
移动包重复出现错误,无法使用 distance
函数。当我第一次加载包时,我收到警告
“为‘距离’找到多个方法表”。
稍后,当遵循 move vignette 时,我 运行 代码行:
distance(leroy)[1:5]
并给出错误:
“(函数(类、fdef、mtable)中的错误: 无法为签名““移动”、“缺失””找到函数“距离”的继承方法。
在将此代码应用于我自己的数据集时,我收到了同样的错误。我认为这是因为 R 为 'distance' 使用了不同的包,但是当我通过 move::distance(leroy)
甚至 terra::distance(leroy)
直接调用它时,我仍然收到相同的错误。我已经尝试重新安装软件包以及移动所需的 'terra' 和 'raster' 软件包;我的笔记本电脑 (Mac)、RStudio 和所有其他软件包都已更新。 Gdal 与 geos 和 proj 一起更新。我有 运行 另一台笔记本电脑上的代码,以及 rdrr.io 上的代码,并且 运行 完美无缺,所以我假设问题出在我的笔记本电脑上。 ?move::distance()
向我展示了 function description,其中 x 是移动、移动堆栈或移动突发对象。从Movebank下载的数据集'leroy'和我自己的数据集都是移动对象。还有其他人 运行 遇到类似问题或有任何故障排除建议吗?
已解决!
移动包尚未更新以说明栅格现在需要 terra。我从 CRAN (move_4.0.6.tar.gz) 和 运行 下载了 move 包源代码,在将 move 包加载到 R 后,他们的距离函数代码。代码他们的距离方法是:
#setGeneric("distance")#, function(x){standardGeneric("distance")})
setMethod("distance",
signature=c(x=".MoveTrackSingle",y="missing"),
definition=function(x){
Dists<-raster::pointDistance(x[-sum(n.locs(x)),], x[-1,], longlat=isLonLat(x))
return(Dists)
})
setMethod("distance",
signature=c(".MoveTrackStack",y="missing"),
definition=function(x){
lst <- lapply(split(x), distance)
return(lst)
})