这是一个最小的例子:
---Title: "Test"output: HTML_document---```{r quakes,echo=F}data(quakes)library(leaflet)for (i in c(10:20)){leaflet(data = quakes[1:5 & quakes$stations == i,]) %>% addTiles() %>% addMarkers(~long,~lat,popup = ~as.character(mag))}```
我没有使用此代码获得任何输出.单独运行leaflet命令(并用整数替换i)时,它可以工作.我也试过了print命令,但这也没用.
知道我怎么能这样做吗?
解决方法 你有点复杂了.您必须通过从唯一的工作站选择经度和纬度来创建传单并在其上应用标记.
但是在这里你要在一个循环中创建传单.并且还在循环中添加了瓷砖,这是主要问题.
现在你可以在循环中创建一个传单和addTiles,并在循环中添加addMarkers,但实际上根本不需要for循环并一次添加所有标记.
首先,按唯一站选择数据集
distinct_by_stations<-distinct(quakes,stations) #dplyr is needed for 'distinct'
使用上面的过滤器数据集作为数据创建传单并添加标记
leaflet(data = distinct_by_stations) %>% addTiles() %>% addMarkers(~long,popup=~as.character(mag))
在rpubs上查看工作.rmd
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,popup=~as.character(mag))```
使用多个地图
让我们在年份上添加一列.然后我们将不得不使用@NicE解释的HTMLtools :: tagList.拆分’年’并使用lapply
```{r quakes,echo=T,results='asis'}data(quakes)library(leaflet)library(dplyr)library(HTMLtools)##Add A Random Year Columnquakes$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,popup=~as.character(mag))}HTMLtools::tagList(lapply(split(quakes,quakes$year),function(x){createMaps(x)}))```
请参阅上面相同网址中的更新rpubs.
总结以上是内存溢出为你收集整理的问:在rmarkdown html中为for循环创建传单地图全部内容,希望文章能够帮你解决问:在rmarkdown html中为for循环创建传单地图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)