我有一个数据框,有近10k个位置,想要获得与地理编码一样多的坐标,但我的代码并没有像我预期的那样返回结果。我会解释一下。 我有这个:
# Getting records for Promenaea genus for an exemple
library(dismo)
promena<-gbif("Promenaea")
#Once I get all records I keep only those that don't have coordinates
promena<-promena[(is.na(promena$lon)),]
#And then, try to get coordinates for them
b <- try( geocode(promena$cloc) )
我的计划是用地理编码的结果来解决我的Promenaea物种的数据框架,然后只删除地理编码无法找到坐标的那些行(那些有NA的坐标)。但我的数据框有259行,地理编码返回318行作为结果......所以有些东西不匹配。
我感谢任何提示
答案 0 :(得分:1)
所以我一直在研究并找到了一些选择:
为此目的,dismo :: geocode函数有一个名为oneRecord的参数:
#Nem attempt of getting coordinates.
b <- try( ggmap::geocode(promena$cloc))
oneRecord 逻辑。如果为TRUE,则返回x中每个项目的单个记录。如果API返回多个记录,则通过平均坐标并获取所有边界框的并集来计算此记录的值(说明文档)
由于我更喜欢真正的衡量标准,而不是平均值,我一直在寻找并发现ggmap也有地理编码功能:
b <- try(ggmap::geocode(promena$cloc, output="more"))
但是我只得到了坐标,我希望将位置与坐标相关联,这样我就可以检查geocode是否返回了一个好的结果,所以我使用了这个参数:
.main img {
width: 30px;
height: 30px;
background-color: red;
}
最后,我比较了两种方法的结果,它们几乎相同,所以我想检查记录非常重要,因为函数可能确实返回平均值