【发布时间】:2016-02-07 15:27:37
【问题描述】:
我对 R 比较陌生。 我正在沿着 GPS 点创建一条线的曲折指数,但为了解决这个问题,我正在尝试为我的纬度和经度数据计算点 n 和 n+10 点之间的距离。
我已经使用 distanceTrack 来计算序列中每个点之间的距离:
lat<-data$Latitude
long<-data$Longitude
distanceTrack(lat,long)
但我想知道是否有其他方法可以超过 10 步?
我尝试使用另一种方法,使用 sp 包和 spDistsN1 来获取连续点之间的距离:
coordinates(gpsdat)<-~Longitude+Latitude
proj4string(gpsdat)<-CRS("+proj=longlat +datum=WGS84")
dist<-sapply(seq_along(gpsdat[-1,]), function(i)
spDistsN1(pts=gpsdat[i,],pt=gpsdat[i+1,],longlat=TRUE))
我想我可以简单地更改一些脚本,所以它是:
dist<-sapply(seq_along(gpsdat[-1,]), function(i)
spDistsN1(pts=gpsdat[i,],pt=gpsdat[i+10,],longlat=TRUE))
但此更改返回我的下标超出范围。 我想知道是否有人可能知道如何在这方面取得进展? 感谢您提供的任何帮助!
【问题讨论】:
-
当然是越界了。当它获得第 (
nrow(gpsdat)-5) 行时会发生什么? -
嗨迈克尔 - 我不确定我会如何增加界限?如果这是一个愚蠢的问题,我很抱歉,但我正在研究我仍在学习的东西,我真的很感激解释?
-
你不能。您需要限制循环,使其仅在
nrow-10 行而不是所有行上运行。