我有一个数据框,其中包含许多包含lat长坐标对的列。我希望使用传单包在地图中绘制这些图,以查看我的数据的外观。
> 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
答案 0 :(得分:1)
你可以试试这个:
m <- as.matrix(t(siteCoor), byrow=T)
dim(m) <- c(2,length(m)/2)
map <- leaflet() %>% addTiles() %>%
addPolygons(lng=m[1,],lat=m[2,])