我有一个数据框,其中包含许多包含lat长坐标对的列 . 我希望使用传单包在 Map 中绘制这些图,以查看我的数据的外观 .
> str(siteCoor)
'data.frame': 3122 obs. of 18 variables:
$ Longitude: num -8.61 -8.61 -8.61 -8.61 -8.61 ...
$ Latitude : num 52.7 52.7 52.7 52.7 52.7 ...
$ 1 : num -8.6 -8.6 -8.6 -8.58 -8.58 ...
$ 2 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 3 : num -8.61 -8.61 -8.61 -8.58 -8.58 ...
$ 4 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 5 : num -8.62 -8.62 -8.62 -8.58 -8.58 ...
$ 6 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 7 : num -8.62 -8.62 -8.62 -8.59 -8.59 ...
$ 8 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 9 : num -8.63 -8.63 -8.63 -8.59 -8.59 ...
$ 10 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 11 : num -8.63 -8.63 -8.63 -8.6 -8.6 ...
$ 12 : num 52.7 52.7 52.7 52.7 52.7 ...
$ 13 : num -8.64 -8.64 -8.64 -8.6 -8.6 ...
$ 14 : num 52.7 52.7 52.7 52.7 52.7 ...
$ Longitude: num -8.61 -8.61 -8.61 -8.61 -8.61 ...
$ Latitude : num 52.7 52.7 52.7 52.7 52.7 ...
我希望在整个列表中逐行绘制'经度'和'纬度',1&2,3和4,5和6,7和8,9和10,11和12,13和14以及'经度'和'纬度' . 它需要遵循这个顺序,以使多边形有意义 .
看过R中addPolygons函数的帮助后,我发现lat和long都需要采用矢量格式 .
下面是我正在使用的代码,但当我将数据帧转换为矢量格式(使用双方括号)时,我有一个我无法理解的错误 . 我也尝试过使用as.vector函数但我无法使用它 .
有人可以提供一点方向吗?
map <- leaflet() %>%
addTiles() %>%
addPolygons(lng=siteCoor[[,c(1,3,5,7,9,11,13,15,17)]],lat=siteCoor[[,c(2,4,6,8,10,12,14,16,18)]])
我运行时收到的错误是:
Error in .subset2(x, ..2, exact = exact) :
recursive indexing failed at level 2
我的数据如下:
> head(siteCoor[,c(1,3,5,7,9,11,13,15,17)])
Longitude 1 3 5 7 9 11 13 Longitude.1
1 -8.609117 -8.602693 -8.609117 -8.615541 -8.621770 -8.627613 -8.632894 -8.637452 -8.609117
2 -8.609117 -8.602693 -8.609117 -8.615541 -8.621770 -8.627613 -8.632894 -8.637452 -8.609117
3 -8.609117 -8.602693 -8.609117 -8.615541 -8.621770 -8.627613 -8.632894 -8.637452 -8.609117
4 -8.609117 -8.578536 -8.580931 -8.584184 -8.588194 -8.592841 -8.597983 -8.603464 -8.609117
5 -8.609117 -8.578536 -8.580931 -8.584184 -8.588194 -8.592841 -8.597983 -8.603464 -8.609117
6 -8.609117 -8.578536 -8.580931 -8.584184 -8.588194 -8.592841 -8.597983 -8.603464 -8.609117
> head(siteCoor[,c(2,4,6,8,10,12,14,16,18)])
Latitude 2 4 6 8 10 12 14 Latitude.1
1 52.69373 52.71586 52.71620 52.71586 52.71484 52.71319 52.71094 52.70817 52.69373
2 52.69373 52.71586 52.71620 52.71586 52.71484 52.71319 52.71094 52.70817 52.69373
3 52.69373 52.71586 52.71620 52.71586 52.71484 52.71319 52.71094 52.70817 52.69373
4 52.69373 52.70049 52.70361 52.70644 52.70888 52.71085 52.71231 52.71320 52.69373
5 52.69373 52.70049 52.70361 52.70644 52.70888 52.71085 52.71231 52.71320 52.69373
6 52.69373 52.70049 52.70361 52.70644 52.70888 52.71085 52.71231 52.71320 52.69373
1 回答
你可以试试这个: