这是对上一个问题的跟进:How do I find the shortest distance from a point to a polygon edge on a map in R (point is outside polygon)
我在海岸线以外的拉特坐标中有80多个多边形,还有一个有多个点的海岸线。我想使用循环函数来计算每个点和每个多边形之间的最短距离。目前,多边形的命名如下:may.1,may.2,may.3等,6月,7月和8月相同。首先,R似乎重新命令我的文件,以便命令变为:may.1,may.10,may.11(你明白了),然后在may.19之后我得到may.2,依此类推。我知道R使用第一个数字作为优先级,但我不知道如何解决这个问题,以便我的日期保持正确的顺序。我尝试使用以下命令创建一个列表:
maplist <- list(may.1, may.2, may.3, ... aug.31)
当我检查&#34; maplist&#34;有太多的数据,它不适合我的控制台窗口,我不知道R如何订购我的列表,或者它是否是正确的格式。我想我应该重新命名我的多边形,但我不确定这个顺序按月按时间顺序排列。我不知道这是否相关,但我在4个月的数据集中有很多错过的日期,所以我不知道这是否会影响我的列表编号。
我的最终目标是使用循环函数
for(i in 1:length(maplist))
{
print(maplist[[i]])
}
获取一个输出,其中第一列包含我的所有多边形,后续列具有从每个多边形到我在海岸线上的点的最短距离(当然也是在latlong坐标中)。所以行名称应该是我的多边形名称,列名称应该是我的点坐标。我想用
dist2Line(c(latitude, longitude), <polygon.name>, distfun=distHaversine)
计算距离。
我的主要问题是如何命名和创建我的多边形列表,以便我可以完成我想要做的事情。其余的只是额外的信息,以使我的目标更加清晰,以便您知道我计划使用哪些功能,以防我需要如何制作我的列表..再次感谢您提供的任何帮助!
另外:我试图测试两个多边形和两个点的循环,我收到一条错误消息,说错误:尝试应用非功能。我用过:
for(i in 1:2(maplist))
{
print(maplist[[i]])
}
其中1和2是定义为i的地图坐标。 对于所有的问题,我已经阅读了有关在线和R书的循环功能,但我真的很难找到适合我的数据的指南。
答案 0 :(得分:0)
如果你想要一个等价物:
for(i in 1:length(maplist))
{
print(maplist[[i]])
}
然后为什么不:
lapply(maplist, print)