你把事情搞复杂了一点。
您必须创建传单并通过从独特的站点选择经度和纬度在其顶部应用标记。
但在这里,您正在循环创建传单。并且还在循环中添加图块,这是主要问题。
现在,您可以创建传单并在循环外添加 Tiles 并在循环中添加标记,但您实际上根本不需要 for 循环并一次性添加所有标记。
首先,按唯一站选择数据集
distinct_by_stations<-distinct(quakes,stations) #dplyr is needed for 'distinct'
使用上述过滤器数据集作为数据创建传单并添加标记
leaflet(data = distinct_by_stations) %>% addTiles() %>% addMarkers(~long,~lat,popup=~as.character(mag))
请参阅 rpubs 上的工作 .rmd
http://rpubs.com/dhawalkapil/quakesdata http://rpubs.com/dhawalkapil/quakesdata
工作 R 块
```{r quakes, echo=T}
data(quakes)
library(leaflet)
library(dplyr)
distinct_by_stations<-distinct(quakes,stations)
leaflet(data = distinct_by_stations) %>% addTiles() %>% addMarkers(~long,~lat,popup=~as.character(mag))
```
具有多个地图
让我们添加一个关于年份的列。然后我们将不得不使用htmltools::tagList
正如@NicE 所解释的。按“年份”拆分并使用lapply
```{r quakes, echo=T,results='asis'}
data(quakes)
library(leaflet)
library(dplyr)
library(htmltools)
##Add A Random Year Column
quakes$year=sample(2006:2015,length(quakes),replace=TRUE)
createMaps<-function(x){
distinct_by_stations<-distinct(x,stations)
lflt<-leaflet(data = distinct_by_stations) %>% addTiles() %>% addMarkers(~long,~lat,popup=~as.character(mag))
}
htmltools::tagList(lapply(split(quakes,quakes$year),function(x){createMaps(x)}))
```
请参阅上面同一网址中的更新 rpub。