.PointToMatrix(p1)中的错误:纬度>;90

.PointToMatrix(p1)中的错误:纬度>;90,r,R,我尝试使用R中geosphere包中的distVincentyEllipsoid函数来计算数据帧中不同点之间的距离,如下所示。然而,我不断地得到错误“error in.pointToMatrix(p1):latitude>90”,即使我所有的纬度都远小于90。有什么问题吗?请帮帮忙我也有同样的问题。检查是否将数据输入为c(长,横向)。我犯了一个错误,使用了更常见的c格式(LAT,LONG)。我还要补充一点,您应该检查NAs。我将一组邮政编码地理编码为坐标,由于一些邮政编码已经过时(至少我认为是这

我尝试使用R中geosphere包中的distVincentyEllipsoid函数来计算数据帧中不同点之间的距离,如下所示。然而,我不断地得到错误“error in.pointToMatrix(p1):latitude>90”,即使我所有的纬度都远小于90。有什么问题吗?请帮帮忙

我也有同样的问题。检查是否将数据输入为c(长,横向)。我犯了一个错误,使用了更常见的c格式(LAT,LONG)。

我还要补充一点,您应该检查NAs。我将一组邮政编码地理编码为坐标,由于一些邮政编码已经过时(至少我认为是这样),它们无法生成坐标

如果您运行:

range(p1[2])
得到

NA NA

这是一个很好的指示。

有同样的问题,用as.numeric解决:

args <- commandArgs(trailingOnly=TRUE)
Lieu1 <- c(args[1],args[2]) 
Lieu2 <- c(args[3],args[4]) 

Lieu1 <- as.numeric(Lieu1)
Lieu2 <- as.numeric(Lieu2)

library(geosphere)
distVincentyEllipsoid(Lieu1,Lieu2)/1000

args表明,您的lon-lat输入确实具有该范围内的纬度。我猜你点错菜了。PointToMatrix源并不复杂。如果我们调用您正在使用的作为
distVincentyEllipsoid(…)
p1
,然后键入
范围(p1[2])
。如果输出的任何一个数字大于90,那就是您的问题。