2017-05-04 6 views
2

This questionは、マークアップファイル内でリーフレットオブジェクトをループオーバー/適用する方法を示しています。同様のことをしたいと思いますが、マークダウンの内容を追加したいと思います。ループ内にリーフレットとマークダウンを組み合わせる

--- 
title: "Test" 
output: html_document 
--- 


```{r setup, echo=T,results='asis'} 
library(leaflet) 
library(dplyr) ### !!! uses development version with tidyeval !!! 
library(htmltools) 

##Add A Random Year Column 
data(quakes) 
quakes <- tbl_df(quakes) %>% 
    mutate(year = sample(2008:2010, n(), replace=TRUE)) 
``` 

```{r maps, echo=T,results='asis'} 
createMaps <- function(year){ 
    cat(paste("###", year, "\n")) 
    leaflet(quakes %>% filter(year == !!year)) %>% 
    addTiles() %>% 
    addMarkers(
     lng = ~long, 
     lat = ~lat, 
     popup = ~as.character(mag)) 
    cat("\n\n") 
} 

htmltools::tagList(lapply(as.list(2008:2010), function(x) createMaps(x))) 
``` 

私はcreateMaps機能でcat文を省略した場合、このコードはすべての3つのマップを印刷します。もし私がcatステートメントを書いたら、私はマークダウンを得るが、マップは得られない。両方のタイプの要素を結合する方法はありますか?

答えて

1

lapplyが結果リストを返す前に、catステートメントが評価されているという問題があります。

したい(tags$h2()、...)

を、 cat文を削除

createMaps <- function(year){ 
    mymap <- leaflet(quakes %>% filter(year == !!year)) %>% 
    addTiles() %>% 
    addMarkers(
     lng = ~long, 
     lat = ~lat, 
     popup = ~as.character(mag)) 
    return(list(tags$h1(year), mymap)) 
} 

にごcreateMaps機能を変更して、ヘッダのどんなサイズにtags$h1()を変更

関連する問題